Skip to content

fix: unicode replacement string android crash#3540

Merged
isekovanic merged 2 commits intodevelopfrom
fix/breaking-rich-text-character-crash-android
Apr 8, 2026
Merged

fix: unicode replacement string android crash#3540
isekovanic merged 2 commits intodevelopfrom
fix/breaking-rich-text-character-crash-android

Conversation

@isekovanic
Copy link
Copy Markdown
Contributor

@isekovanic isekovanic commented Apr 8, 2026

🎯 Goal

This PR fixes an Android crash in message rendering caused by the Unicode object replacement character (U+FFFC) reaching the markdown pipeline.

The fix sanitizes message text before markdown generation by normalizing U+FFFC to whitespace and treating fully empty results as empty content.

Should resolve this issue.

πŸ›  Implementation details

🎨 UI Changes

iOS
Before After
Android
Before After

πŸ§ͺ Testing

β˜‘οΈ Checklist

  • I have signed the Stream CLA (required)
  • PR targets the develop branch
  • Documentation is updated
  • New code is tested in main example apps, including all possible scenarios
    • SampleApp iOS and Android
    • Expo iOS and Android

@isekovanic isekovanic requested a review from oliverlaz April 8, 2026 08:28
@Stream-SDK-Bot
Copy link
Copy Markdown
Contributor

Stream-SDK-Bot commented Apr 8, 2026

SDK Size

title develop branch diff status
js_bundle_size 351 KB 351 KB 0 B 🟒

@isekovanic isekovanic merged commit d28257f into develop Apr 8, 2026
6 checks passed
@isekovanic isekovanic deleted the fix/breaking-rich-text-character-crash-android branch April 8, 2026 08:55
isekovanic added a commit that referenced this pull request Apr 8, 2026
## 🎯 Goal

This PR fixes an Android crash in message rendering caused by the
Unicode object replacement character (`U+FFFC`) reaching the markdown
pipeline.

The fix sanitizes message text before markdown generation by normalizing
`U+FFFC` to whitespace and treating fully empty results as empty
content.

Should resolve [this
issue](https://getstream.zendesk.com/agent/tickets/79676?brand_id=360003144254).

## πŸ›  Implementation details

<!-- Provide a description of the implementation -->

## 🎨 UI Changes

<!-- Add relevant screenshots -->

<details>
<summary>iOS</summary>


<table>
    <thead>
        <tr>
            <td>Before</td>
            <td>After</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <!--<img src="" /> -->
            </td>
            <td>
                <!--<img src="" /> -->
            </td>
        </tr>
    </tbody>
</table>
</details>


<details>
<summary>Android</summary>

<table>
    <thead>
        <tr>
            <td>Before</td>
            <td>After</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <!--<img src="" /> -->
            </td>
            <td>
                <!--<img src="" /> -->
            </td>
        </tr>
    </tbody>
</table>
</details>

## πŸ§ͺ Testing

<!-- Explain how this change can be tested (or why it can't be tested)
-->

## β˜‘οΈ Checklist

- [ ] I have signed the [Stream
CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform)
(required)
- [ ] PR targets the `develop` branch
- [ ] Documentation is updated
- [ ] New code is tested in main example apps, including all possible
scenarios
  - [ ] SampleApp iOS and Android
  - [ ] Expo iOS and Android
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants