I don’t think it’s related to option sets per se. What I can say based on your screenshot is that the frame_ant.js script (which resides at your app’s domain) is attempting to send an Ajax request to the Bubble CDN domain (where the image resides). That, by definition, is a cross-origin request and would trigger such an error.
One explanation for why it doesn’t occur for an image pulled from the DB is if the image field is protected by privacy rules. In that case, even though the image is hosted on AWS, it can only be accessed via a Bubble-generated URL which shares the same origin (domain) as your app. So, in that case, it would be the same origin and thus no error.
Anyway, that’s my best hypothesis given the info available.
EDIT
if the image field is protected by privacy rules
Actually, what I meant was if the image is “private” - i.e. was attached to something when it was uploaded.
Interesting. Thanks for that @sudsy - I suspect you may be correct. I’ll do some further reading/investigating and report back if I figure it out fully