Issue getting audio file's duration meta data (or a lack of Accept-Ranges: bytes)

Im noticing an issue with most (maybe all) of the audio files playing in my react-native mobile app. It seems to have only stopped working maybe a week ago.

We have long ~30-40min mp3 files we are loading from Dato and when played they’ll play for a few mins and the stop. This appears to be due to the duration metadata not being readable or the audio not fully buffering. I have thought the issue was with the way that the files were being played in the app however I can see that when I load the same file from a different server the full audio plays and the files duration correctly pulls into the app.

The difference I can see in the 2 sets of response headers are that the headers from dato lack the Accept-Ranges: bytes header, which I understand should allow the client to correctly manage the stream from the server.

This is the Dato file: https://www.datocms-assets.com/110904/1741599834-mila-week-4-run-2.mp3
And the working file on Vercel Blob Storage: https://egldlwn8demvfqrx.public.blob.vercel-storage.com/mila-week-4-run-2-qaOSXNCD9UlEuhptlFv6XLHoBeXjdC.mp3

You can see that the HTML player will also not render correctly (progress par doesn’t seek) on the Dato video, nor does the duration show.

Hi @henry,

Thanks for this detailed report! We also got your duplicate email about this.

We’re investigating this and will let you know via email when we have some findings. (We’ll also try to update this thread afterward so others can see what the resolution was.)