Engineers are currently investigating the issue.
Summary:
When an audio file is embedded in a Canvas page using the HTML {{}} tag, the audio plays for a few seconds then stops. This happens because the browser plays audio via sequential HTTP range requests, and the second range request to the Inst-FS CDN ({{cdn.inst-fs-iad-prod.inscloudgate.net}}) returns a {{401 Unauthorized}} response. The first range request succeeds with a {{206 Partial Content}} served from CloudFront cache; the second range request with the same JWT token hits a CloudFront Lambda@Edge function which rejects the token, likely due to replay protection on the {{jti}} claim.
Expected Behavior:
Audio embedded via the {{}} HTML tag should play completely from start to finish without interruption.
Steps to Reproduce:
- In a Canvas course, navigate to Files and upload an MP3 file. (Samples can be downloaded here
Sample MP3 audio files ) - Create a Page in the course.
- Switch to the HTML editor and insert the following, replacing the
src with your uploaded file's Canvas download URL:
HTML:
<p> <audio controls="controls" style="display: block; width: 100%;"> <source src="/courses/[course_id]/files/[file_id]/download" type="audio/mpeg" /> </audio></p> - Save the page.
- Click the play button on the audio player.
- Observe: audio plays and then stops randomly.
- Open DevTools → Network tab; you could see a {{206}} response followed by a {{401}} on the second range request to {{cdn.inst-fs-iad-prod.inscloudgate.net}}.