Form attachment on external storage provider gives 404, blocking download from Collect

1. What is the issue? Please be detailed.
I have had intermittent problems with downloading forms that have (lots of) images within the form definition - I had assumed it was related to wifi connection on the device. I am now unable to test a form that has 22 images (png / jpg) that are part of the form (select one or image display), or a second form that has 80 images.

This is an issue for draft forms and published forms on my self-hosted server. If I do not upload the images whilst testing, the form downloads. However as soon as I upload them and try to update the form on the device the refresh / update fails.

2. What steps can we take to reproduce this issue?
I have no idea what started this and therefore how to reproduce. I have incrementally uploaded the files (each one is 10-100kb but one or two are 300kb) and reloaded the form. I got to 14 files and then tried to upload 3 extra and the form update then fails - repeatedly.

3. What have you tried to fix the issue?
I don't know the cause so any suggestions of where to look in terms of error / access logs within Central or Collect would be appreciated. I don't think it is related to S3 storage as it occurs with newly uploaded forms and those that have been on the server for a while.

There is no error code or useful feedback on ODK Collect to share

4. Upload any forms or screenshots you can share publicly below.

I’m not quite following what’s happening here. Could you please write out the steps like:

  1. Start new draft in Central
  2. Scan QR draft QR code
  3. etc.

Sorry for the lack of clarity in the post.

The problem exists with creating new forms or updating existing forms - and has recurred today.

In terms of "fault-flow" to find the "falling over point" for new forms - an existing form already has the attachments listed so cannot be updated or tested as these attachments prevent the form downloading at all

  • Start new draft

  • upload only the form definition (.xlsx file) with image references

  • Test form on device - i.e. scan the temporary QR Code

  • On the device the new project appears and the form is visible with no images uploaded - so the form functions, but shows the errors that ODK Collect cannot find the image resource [ as expected].

  • On ODK Central upload one image

  • On ODK Collect refresh the form list and check if an updated form definition has been received

  • Repeat until it falls over.

In my case I did from 1-14 without problem (i.e. repeated that process 14 times!), then tried 3 extras as a single operation (because I was a bit bored) and it fell over (the refresh symbol has an exclamation mark) and failed to download the new definition.

With an existing form, if I try to load a project to a new device, the image-laden form will not load. I have a (live) project with 2 forms - one has images the other doesn't. Only 1 form (the one without images) is visible and the refresh button does not help.

On my form with 80+ images, these are photos totalling 32Mb of existing locations that we are revisiting - this is stuck and I cannot distribute the form. However, last week one of the other forms (the live equivalent of my 22 image form) did update...

As it seems to be intermittent I am "hoping" it is a problem with bandwidth or network - and I haven't seen a similar report, but if I can't trace the error it is hard to know where to start with the server provider... I have no reported down time or network issues on the server (although there are some ongoing S3 'challenges' - hence trying a new form to bypass S3)

Any pointers to logs or test I can run would be much appreciated.

Thanks! We’ll see if we can reproduce.

For reference, in case it helps:

Server details (UK based running since 2022):

CPU: 2 vCore
RAM: 2 GB
SSD: 60 GB
Bandwidth up to: 400 Mbps

Central:

versions:
(v2026.1.1-1-g020d5a7)
 client (v2026.1.0)
 server (v2026.1.1)

I agree that this likely has something to do with the server side of things. If you're willing to share the draft QR code temporarily with @seadowg and me in a private message we'd appreciate it. That's likely to be enough to figure out what's going on but if it's quick to send us a zip with the form definition and attachments that would give us more to look into.

Alternatively, you could change your Collect settings to the "Manual" form update mode (Project icon at top right of Collect landing screen > form management > Blank form update mode) and then manually try to download your form. You could share any form download error you get there.

We've confirmed that this is a server-side issue with a form attachment that claims to be uploaded but is not available from S3.

For now I have recommended that @seewhy change the form attachment a little bit (shrink it down by 1px, add a tiny dot, recompress it) and reupload. I believe that will get things working again for this form.

We will work on figuring out how this state is possible and preventing it from happening again.

I can confirm that this has solved the problem by uploading the media attachments again with a slight change - as these were photos I resized them at a very slightly different proportion.

Thanks for your help. It works with both draft forms that were 'stuck'.