Pasting a cropped or small image skips image preview and sends immediately
- [x] I have searched open and closed issues for duplicates
- [x] I am submitting a bug report for existing functionality that does not work as intended
- [x] This isn't a feature request or a discussion topic
Bug description
Normally, when you paste an image into a chat, a preview window opens, allowing you to see the image before sending it. This window gives you the option to either exit without sending the image or proceed with sending it.
However, there is a bug that I have been able to reproduce multiple times.
If you copy a cropped or smaller than usual image and then paste it into a conversation in the Signal app, the preview window does not always appear. Instead, the image is sent immediately, without giving you the chance to review or cancel it.
Sometimes, the function works correctly, while at other times, it doesn’t. For example, in the video recording below, I was able to reproduce the bug the first time, but not the second time.
The timestamp of the image displayed in the video recording below, as per my Signal Desktop, which synchronizes with the messages, is 1743092235559, sent 27/03/25 at 18:17 Greek time.
I apologize if this is a duplicate issue. I couldn’t find any open issues related to this bug.
Steps to reproduce
There are several ways to reproduce the issue, but this is the simplest one:
- Open a Signal chat.
- Take a screenshot.
- Crop the screenshot to a small size.
- Select “Copy & Delete.”
- Return to your Signal chat.
- Paste the image into the message box.
Actual result: If a cropped or smaller-than-usual image is copied and pasted into a Signal chat, the preview window does not always appear. Instead, the image is sent immediately without allowing the user to review or cancel it.
Expected result: When pasting any image into a Signal chat, a preview window should always appear, allowing the user to review the image before sending it. The user should have the option to either send the image or cancel the action.
Screenshots
https://github.com/user-attachments/assets/b76cd38b-5377-4ec7-a4d0-c9a18b2e072a
Device info
Device: iPhone 15 Pro Max
iOS version: 18.3.2
Signal version: 7.52 (692)
Link to debug log
https://debuglogs.org/ios/7.52.0/dc6af05cec6ba7826850cfdcade3f348312c2f769a8522d16d48c4c4060ad77e.zip
@sashaweiss-signal Is this one related to #6005?
This is happening because of the heuristic logic we're using to determine if a pasted image is a sticker, which relies on checks like the image being very small in dimension.
Thanks for reporting. I'll track this internally, related to other issues with detecting stickers.
This issue persists despite the release of version 7.56.
@ExtRIELICi @sashaweiss-signal I'll take a look at this one soon. I'm currently working on another bug that I should be done with within the next couple of days.
I know exactly where that code is for determining if a SignalAttachment is a sticker or not. The thing is, I already have a PR that hit around where the problem might be (This PR right here #6014), so I'm a little worried about a merge conflict.
(to just @ExtRIELICi) In the meantime, what version iOS are you running? The latest version of iOS is 18.4.1. Try upgrading to that and let me know if things change or not.
(to just @ExtRIELICi) In the meantime, what version iOS are you running? The latest version of iOS is 18.4.1. Try upgrading to that and let me know if things change or not.
I am on the latest iOS, which is 18.4.1.
Thank you for your time and effort!
@ExtRIELICi Sounds good. I just got it to reproduce on my side, so I'll take a look into it!
Alright, I took a look at the code, and I understand everything that is going on; however, this might be a use case issue and not just a bug issue. If the user wants to send small images, such as 16x16 game sprites, they would be sent as stickers due to them being below that dimensional limit (which is 500x500 btw). I can think of no other way to discern the intention of the user when they paste image data on whether they want the data to be sent as just an image or a sticker. So with that being said, should we make it so that stickers can only be sent from the sticker menu, and make all pasted image data be sent as images (not stickers) only?
@sashaweiss-signal I hope that you can ask the team, and let me know the decision. I would love to work on this if it's just a quick fix. 🙏
@ExtRIELICi I see that you find and report a lot of bugs on Signal. Thank you so much for taking the time to do that! If you don't mind, would you perhaps want to exchange Signals? If you ever find a bug, you can let me know right away :)
Any fix here would need to be careful not to degrade other flows, so would involve holistically examining both how we detect sticker-like images and the various codepaths we use to send stickers. It's possible we'd make UX changes here, but I don't think there's an obvious simple fix.
For the time being, I'm tracking this internally.
@sashaweiss-signal, yeah, that completely makes sense. I guess that means this ticket is hands off for me ¯_(ツ)_/¯. I'll pick another bug or feature to work on.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Not stale