Subject: Image column upload crashes on PNG files (EXIF parser fails) — desktop web app
Summary:
Uploading a PNG image through an Image-type column on the AppSheet desktop web app (Chrome, macOS) silently fails. No preview is shown, no file is saved, and no user-facing error appears. The browser console shows an uncaught JS exception originating from the app’s EXIF-parsing routine.
Steps to reproduce:
- Open any app in Chrome on macOS (desktop web, not mobile app).
- Navigate to a Form or Detail view containing an editable Image-type column.
- Tap/click the upload control on that Image column.
- Select any standard .png file (tested with multiple PNGs, including ones with sRGB and Display P3 color profiles, various sizes).
- Click “Open” in the file picker.
Expected behavior:
The image should upload, show a thumbnail preview in the form, and save to the column on Save.
Actual behavior:
Nothing happens. No preview, no error message shown to the user, no file saved. The upload silently fails.
Console error (Chrome DevTools):
Uncaught TypeError: Cannot read properties of undefined (reading ‘0’)
at s (…js:1:793502)
at r (…js:1:791402)
at (…js:1:799311)
at a.getDataFromDataURL (…js:1:799358)
at Image. (…js:1:800240)
at E.each (…js:1:3119)
at E.fn.init.each (…js:1:1598)
at jQuery.fn.exifLoadFromDataURL (…js:1:800214)
at i.onload (…js:1:787232)
Root cause (as far as I can diagnose):
The upload handler calls a jQuery-based EXIF parser (exifLoadFromDataURL / getDataFromDataURL) on every uploaded image before accepting it. This parser assumes JPEG’s APP1/EXIF marker structure. PNG files have no such structure (metadata is stored in PNG text/iCCP chunks, not EXIF), so the parser receives undefined where it expects an EXIF segment and throws when trying to index into it. This causes the entire upload flow to abort silently rather than skipping EXIF extraction gracefully for non-JPEG formats.
Testing done to isolate the cause:
- Reproduced consistently across multiple different PNG files.
- Same PNG files with color profile changed from Display P3 to sRGB — same crash, ruling out ICC profile as the trigger.
- Same upload action works correctly with .jpg files.
- Confirmed this is upload-specific: PNGs referenced and displayed via URL/App formula (not uploaded through the Image column’s native picker) display correctly with no issue, confirming the bug is isolated to the client-side upload/EXIF-read code path, not PNG rendering generally.
- Reproduced on both a fresh browser profile and Incognito mode, ruling out extensions.
- Confirmed OS-level camera/file permissions were correctly granted (macOS Privacy & Security) before testing.
Impact:
Our team’s workflow standardizes on PNG for image assets (matching our print/production pipeline), and this bug forces us to convert every file to JPEG before upload as a workaround, which shouldn’t be necessary for a widely-used standard format. Any app relying on PNG uploads via an Image column on desktop web is affected.
Requested fix:
Either (a) have the EXIF parser gracefully skip non-JPEG files instead of throwing, or (b) detect file type before attempting EXIF extraction and bypass it for PNG/other non-EXIF formats.
Platform details:
- Browser: Google Chrome (desktop), macOS
- App type: Image column, editable, standard file/camera picker (not virtual)
- Not reproduced yet on mobile app (Android/iOS) — issue appears specific to the desktop web upload path
Happy to provide the affected app ID, a sample PNG file, or a screen recording if useful for your engineering team to reproduce.