500 error on playback/download in 3.1.14 – recordings valid, no logs

Environment

  • Bluecherry Server: 3.1.14
  • Deployment: Docker Compose
  • Database: Separate bc-mysql container
  • Host OS: Linux (ext4)
  • Storage: Dedicated 8TB Skyhawk AI drive
  • Bind mount: /storage/bluecherry/recordings:/var/lib/bluecherry/recordings

Storage Verification

  • Disk mounted via UUID in fstab
  • Verified inside container that recordings are written to:
    /var/lib/bluecherry/recordings/YYYY/MM/DD/...
  • .mp4 and .jpg files are created correctly
  • File sizes are non-zero and increasing
  • Hex header confirms valid MP4 (ftyp present)
  • Files accessible inside container
  • Permissions fully opened (tested chmod 777) to eliminate filesystem issues
  • Ownership aligned to container UID/GID

Issue

Playback and download both fail with:

500 Internal Server Error
file’s first stream is not a video


What Has Been Verified

  • Recordings exist and are valid MP4 containers
  • ffmpeg / ffprobe installed inside container
  • nginx and php-fpm are running
  • No errors written to:
    • /var/log/nginx/error.log
    • /var/log/bluecherry.log
    • php-fpm logs
  • Timezone verified correct
  • Container restarted cleanly

The 500 appears to originate from the /media/stream-mp4 endpoint.


Observations

  • Storage configuration is correct
  • Files are valid and readable
  • Permissions are not the issue
  • Logs remain empty during failure

Is there additional debug logging that can be enabled for the media pipeline in 3.1.14?

Are there known issues with the stream-mp4 endpoint under Docker deployments?

Any guidance would be appreciated.

Which docker image are you using? ‘latest’ or are you set at 3.1.14?

Thanks for your response.
Image was actually something like dev unstable.
In the end I reinstalled package directly outside of docker (the install script had an enormous amount of failures which I worked through one by one.

The installation works now save for the following issues:

  • timestamps on the playback tab appear UTC (both server time and MySQL time are set to the correct time zone
  • live view on android app says can’t connect
  • downloading the recorded mp4 files and playing with vlc they’re extremely laggy and stay stuck at same second for a while and oddly jump