Panoramax uploads fail (For parameter override_longitude, 9095327 is not a valid longitude) #2711

Closed
opened 2026-06-23 16:12:40 +00:00 by eliasp · 4 comments

Version: 0.61.3

Trying to upload a Panoramax image fails.

Checking the request in the browser's dev tools, I can see why:

{
  "details": {
    "error": "longitude needs to be between -180 and 180"
  },
  "message": "For parameter `override_longitude`, `9095327` is not a valid longitude",
  "status_code": 400
}

Used browser is Firefox 150.0.2, but I've seen it fail on mobile (Android, Fennec 152.0.0) as well.

Version: 0.61.3 Trying to upload a Panoramax image fails. Checking the request in the browser's dev tools, I can see why: ```JSON { "details": { "error": "longitude needs to be between -180 and 180" }, "message": "For parameter `override_longitude`, `9095327` is not a valid longitude", "status_code": 400 } ``` Used browser is Firefox 150.0.2, but I've seen it fail on mobile (Android, Fennec 152.0.0) as well.
Owner

Please, share the original image here. I cannot debug without it...

Please, share the original image here. I cannot debug without it...
Author

EXIF Data:

[{
  "SourceFile": "/home/eliasp/Desktop/IMG_20260623_084831.jpg",
  "ExifToolVersion": 13.58,
  "FileName": "IMG_20260623_084831.jpg",
  "Directory": "/home/eliasp/Desktop",
  "FileSize": "4.5 MB",
  "FileModifyDate": "2026:06:23 08:48:31+02:00",
  "FileAccessDate": "2026:06:23 18:04:01+02:00",
  "FileInodeChangeDate": "2026:06:23 18:03:52+02:00",
  "FilePermissions": "-rw-r--r--",
  "FileType": "JPEG",
  "FileTypeExtension": "jpg",
  "MIMEType": "image/jpeg",
  "ExifByteOrder": "Big-endian (Motorola, MM)",
  "YResolution": 72,
  "XResolution": 72,
  "Model": "AC2003",
  "Make": "OnePlus",
  "YCbCrPositioning": "Centered",
  "ExifVersion": "0220",
  "ApertureValue": 1.7,
  "SceneType": "Unknown (0)",
  "ExposureCompensation": 0,
  "ExposureProgram": "Not Defined",
  "ColorSpace": "sRGB",
  "MaxApertureValue": 1.7,
  "ExifImageHeight": 3000,
  "BrightnessValue": 0,
  "DateTimeOriginal": "2026:06:23 08:48:31",
  "FlashpixVersion": "0100",
  "SubSecTimeOriginal": "000966",
  "WhiteBalance": "Auto",
  "InteropIndex": "R98 - DCF basic file (sRGB)",
  "ExposureMode": "Auto",
  "ExposureTime": "1/1061",
  "Flash": "Off, Did not fire",
  "SubSecTime": "000966",
  "FNumber": 1.8,
  "ISO": 100,
  "ExifImageWidth": 4000,
  "ComponentsConfiguration": "Y, Cb, Cr, -",
  "FocalLengthIn35mmFormat": "0 mm",
  "SubSecTimeDigitized": "000966",
  "CreateDate": "2026:06:23 08:48:31",
  "ShutterSpeedValue": "1/1061",
  "MeteringMode": "Spot",
  "FocalLength": "4.7 mm",
  "SceneCaptureType": "Standard",
  "LightSource": "D65",
  "SensingMethod": "Unknown (0)",
  "Orientation": "Horizontal (normal)",
  "ResolutionUnit": "inches",
  "ModifyDate": "2026:06:23 08:48:31",
  "GPSLatitudeRef": "North",
  "GPSAltitudeRef": "Above Sea Level",
  "GPSProcessingMethod": "GPS",
  "GPSLongitudeRef": "East",
  "GPSTimeStamp": "06:48:31",
  "GPSDateStamp": "2026:06:23",
  "Compression": "JPEG (old-style)",
  "ThumbnailOffset": 1083,
  "ThumbnailLength": 30359,
  "XMPToolkit": "Adobe XMP Core 5.1.0-jc003",
  "CaptureMode": "Photo",
  "LensFacing": "Back",
  "SceneDetectResultIds": "[0, 0, 0]",
  "SceneDetectResultConfidences": "[0.0, 0.0, 0.0]",
  "IsHDRActive": false,
  "IsNightModeActive": false,
  "IsBokehActive": false,
  "Warning": "FPXR segment too small",
  "ImageWidth": 4000,
  "ImageHeight": 3000,
  "EncodingProcess": "Baseline DCT, Huffman coding",
  "BitsPerSample": 8,
  "ColorComponents": 3,
  "YCbCrSubSampling": "YCbCr4:2:0 (2 2)",
  "Aperture": 1.8,
  "ImageSize": "4000x3000",
  "Megapixels": 12.0,
  "ShutterSpeed": "1/1061",
  "SubSecCreateDate": "2026:06:23 08:48:31.000966",
  "SubSecDateTimeOriginal": "2026:06:23 08:48:31.000966",
  "SubSecModifyDate": "2026:06:23 08:48:31.000966",
  "ThumbnailImage": "(Binary data 30359 bytes, use -b option to extract)",
  "GPSAltitude": "484.6 m Above Sea Level",
  "GPSDateTime": "2026:06:23 06:48:31Z",
  "GPSLatitude": "48 deg 27' 12.96\" N",
  "GPSLongitude": "9 deg 5' 43.18\" E",
  "FocalLength35efl": "4.7 mm",
  "GPSPosition": "48 deg 27' 12.96\" N, 9 deg 5' 43.18\" E",
  "LightValue": 11.7
}]
EXIF Data: ```JSON [{ "SourceFile": "/home/eliasp/Desktop/IMG_20260623_084831.jpg", "ExifToolVersion": 13.58, "FileName": "IMG_20260623_084831.jpg", "Directory": "/home/eliasp/Desktop", "FileSize": "4.5 MB", "FileModifyDate": "2026:06:23 08:48:31+02:00", "FileAccessDate": "2026:06:23 18:04:01+02:00", "FileInodeChangeDate": "2026:06:23 18:03:52+02:00", "FilePermissions": "-rw-r--r--", "FileType": "JPEG", "FileTypeExtension": "jpg", "MIMEType": "image/jpeg", "ExifByteOrder": "Big-endian (Motorola, MM)", "YResolution": 72, "XResolution": 72, "Model": "AC2003", "Make": "OnePlus", "YCbCrPositioning": "Centered", "ExifVersion": "0220", "ApertureValue": 1.7, "SceneType": "Unknown (0)", "ExposureCompensation": 0, "ExposureProgram": "Not Defined", "ColorSpace": "sRGB", "MaxApertureValue": 1.7, "ExifImageHeight": 3000, "BrightnessValue": 0, "DateTimeOriginal": "2026:06:23 08:48:31", "FlashpixVersion": "0100", "SubSecTimeOriginal": "000966", "WhiteBalance": "Auto", "InteropIndex": "R98 - DCF basic file (sRGB)", "ExposureMode": "Auto", "ExposureTime": "1/1061", "Flash": "Off, Did not fire", "SubSecTime": "000966", "FNumber": 1.8, "ISO": 100, "ExifImageWidth": 4000, "ComponentsConfiguration": "Y, Cb, Cr, -", "FocalLengthIn35mmFormat": "0 mm", "SubSecTimeDigitized": "000966", "CreateDate": "2026:06:23 08:48:31", "ShutterSpeedValue": "1/1061", "MeteringMode": "Spot", "FocalLength": "4.7 mm", "SceneCaptureType": "Standard", "LightSource": "D65", "SensingMethod": "Unknown (0)", "Orientation": "Horizontal (normal)", "ResolutionUnit": "inches", "ModifyDate": "2026:06:23 08:48:31", "GPSLatitudeRef": "North", "GPSAltitudeRef": "Above Sea Level", "GPSProcessingMethod": "GPS", "GPSLongitudeRef": "East", "GPSTimeStamp": "06:48:31", "GPSDateStamp": "2026:06:23", "Compression": "JPEG (old-style)", "ThumbnailOffset": 1083, "ThumbnailLength": 30359, "XMPToolkit": "Adobe XMP Core 5.1.0-jc003", "CaptureMode": "Photo", "LensFacing": "Back", "SceneDetectResultIds": "[0, 0, 0]", "SceneDetectResultConfidences": "[0.0, 0.0, 0.0]", "IsHDRActive": false, "IsNightModeActive": false, "IsBokehActive": false, "Warning": "FPXR segment too small", "ImageWidth": 4000, "ImageHeight": 3000, "EncodingProcess": "Baseline DCT, Huffman coding", "BitsPerSample": 8, "ColorComponents": 3, "YCbCrSubSampling": "YCbCr4:2:0 (2 2)", "Aperture": 1.8, "ImageSize": "4000x3000", "Megapixels": 12.0, "ShutterSpeed": "1/1061", "SubSecCreateDate": "2026:06:23 08:48:31.000966", "SubSecDateTimeOriginal": "2026:06:23 08:48:31.000966", "SubSecModifyDate": "2026:06:23 08:48:31.000966", "ThumbnailImage": "(Binary data 30359 bytes, use -b option to extract)", "GPSAltitude": "484.6 m Above Sea Level", "GPSDateTime": "2026:06:23 06:48:31Z", "GPSLatitude": "48 deg 27' 12.96\" N", "GPSLongitude": "9 deg 5' 43.18\" E", "FocalLength35efl": "4.7 mm", "GPSPosition": "48 deg 27' 12.96\" N, 9 deg 5' 43.18\" E", "LightValue": 11.7 }] ```
Author

I was able to upload images (that failed in Firefox) in MapComplete Android (0.59.3) mostly just fine. They weren't displayed within the App as expected right after the upload, but everything else just worked.

So is this maybe a Firefox specific issue when it comes to parsing the EXIF data?

EDIT: Oups, typo (unableable)

I was able to upload images (that failed in Firefox) in MapComplete Android (0.59.3) mostly just fine. They weren't displayed within the App as expected right after the upload, but everything else just worked. So is this maybe a Firefox specific issue when it comes to parsing the EXIF data? EDIT: Oups, typo (`unable` → `able`)
pietervdvn referenced this issue from a commit 2026-06-27 19:42:03 +00:00
Owner

No, this is the EXIF-handling that MC does. Your camera did something weird for this picture (it divided the 'Lat' an additional time by 1000, whereas most firmware doesn't do that).

No, this is the EXIF-handling that MC does. Your camera did something weird for this picture (it divided the 'Lat' an additional time by 1000, whereas most firmware doesn't do that).
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
MapComplete/MapComplete#2711
No description provided.