{"product":"anthias","releases":[{"date":"2026-06-09","entries":[{"areas":[],"breaking":false,"content_html":"\u003cp\u003eIf you have a Raspberry Pi 3 running a 64-bit operating system, or a Radxa Rock Pi 4, there\u0026#39;s now an Anthias disk image and a balena fleet made for your board. On a Pi 3 with Raspberry Pi OS, the installer picks the wrong image in this release; that\u0026#39;s fixed in Anthias 2026.07.0.\u003c/p\u003e\n\u003cp\u003eAnthias 2026.06.3 adds a 64-bit Raspberry Pi 3 image, called \u003ccode\u003epi3-64\u003c/code\u003e, and a balena fleet and disk image for the Radxa Rock Pi 4 Model B.\u003c/p\u003e\n\u003ch2 id=\"raspberry-pi-3-on-a-64-bit-os\"\u003eRaspberry Pi 3 on a 64-bit OS\u003c/h2\u003e\n\u003cp\u003eA Raspberry Pi 3 can run a 32-bit or a 64-bit operating system. Until now Anthias installed the 32-bit \u003ccode\u003epi3\u003c/code\u003e image on both, with its Qt 5 viewer. From Anthias 2026.06.3, a Pi 3 running a 64-bit OS gets \u003ccode\u003epi3-64\u003c/code\u003e instead, with the Qt 6 viewer the Raspberry Pi 4 uses.\u003c/p\u003e\n\u003cp\u003eOn balena and from the disk image, a 64-bit Pi 3 works from this release. On Raspberry Pi OS, the installer and the upgrade script were meant to choose for you, but in 2026.06.3 they got it wrong in 2 ways:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThey chose by the kernel, and 32-bit Raspberry Pi OS starts a 64-bit kernel on a Pi 3 by default. So a Pi 3 on 32-bit Raspberry Pi OS was given \u003ccode\u003epi3-64\u003c/code\u003e, and the download failed with \u003ccode\u003eno matching manifest for linux/arm/v8\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eA new install on a 64-bit OS stopped with \u003ccode\u003eRequired environment variables missing or invalid\u003c/code\u003e, because the install playbook didn\u0026#39;t accept \u003ccode\u003epi3-64\u003c/code\u003e yet.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBoth are fixed in \u003ca href=\"/releases/anthias/2026.07.0/fixes-and-improvements/\"\u003eAnthias 2026.07.0\u003c/a\u003e, which chooses by the operating system instead. From then on, a Pi 3 on a 64-bit OS moves to \u003ccode\u003epi3-64\u003c/code\u003e when it upgrades, and a Pi 3 on a 32-bit OS stays on \u003ccode\u003epi3\u003c/code\u003e, which is in maintenance mode. To move one to the 64-bit image, flash a 64-bit OS and install Anthias again.\u003c/p\u003e\n\u003cp\u003eThe 64-bit Pi 3 image is in the same places as the others:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ea disk image on the release page, \u003ccode\u003eanthias-pi3-64\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ean entry in Raspberry Pi Imager, without the maintenance mode note the 32-bit Pi 2 and Pi 3 entries carry\u003c/li\u003e\n\u003cli\u003ea balena fleet, \u003ccode\u003escreenly_ose/anthias-pi3-64\u003c/code\u003e, for the balenaOS device type \u003ccode\u003eraspberrypi3-64\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAs on the 32-bit image, video uploads have to be H.264. HEVC uploads are rejected with a way to convert them. Video on \u003ccode\u003epi3-64\u003c/code\u003e could still show a black screen in this release; \u003ca href=\"/releases/anthias/2026.07.2/raspberry-pi-3-64-bit-video/\"\u003eAnthias 2026.07.2\u003c/a\u003e fixes that.\u003c/p\u003e\n\u003ch2 id=\"rock-pi-4\"\u003eRock Pi 4\u003c/h2\u003e\n\u003cp\u003eThe Rock Pi 4 has its own balena fleet, \u003ccode\u003escreenly_ose/anthias-rockpi4\u003c/code\u003e, and a disk image on the release page, \u003ccode\u003eanthias-rockpi4\u003c/code\u003e. It runs the generic arm64 containers, so there is no separate Rock Pi 4 build.\u003c/p\u003e\n\u003cp\u003eAnthias recognizes the board by the model name in its device tree and accepts H.264 and HEVC video uploads on it. On a docker-compose install, a host service reported that model name to the server, but balena installs don\u0026#39;t run that service, so a Rock Pi 4 on balena would have had every video upload rejected. The server now reads the device tree itself when nothing has been reported. That also covers a docker-compose install whose host service isn\u0026#39;t running. An arm64 board Anthias doesn\u0026#39;t recognize still has its video uploads rejected.\u003c/p\u003e\n","description":"A Raspberry Pi 3 on a 64-bit OS has its own image on balena and as a disk image, with the same viewer as the Pi 4. The Radxa Rock Pi 4 gets its own balena fleet and disk image.","title":"A 64-bit image for the Raspberry Pi 3, and a balena fleet for the Rock Pi 4","type":"release","url":"https://www.screenly.io/releases/anthias/2026.06.3/pi3-64-and-rock-pi-4/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eFrom Anthias 2026.06.3, the web interface, the background worker and the viewer report errors to Sentry. Reporting is on by default, and the reports go to a Sentry project whose address is built into Anthias, so the maintainers can see which boards and builds fail in the field. Several fixes in this release came from those reports.\u003c/p\u003e\n\u003ch2 id=\"what-a-report-contains\"\u003eWhat a report contains\u003c/h2\u003e\n\u003cp\u003eA report is sent when one of these services hits an error it doesn\u0026#39;t handle, or logs a message at error level. Each one carries:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ethe error and its stack trace, including the values of the variables in the code where it happened\u003c/li\u003e\n\u003cli\u003erecent log lines from the same service\u003c/li\u003e\n\u003cli\u003efor an error in the web interface, the request that caused it: its address, its headers, and the form data it carried, with fields named like passwords or tokens removed\u003c/li\u003e\n\u003cli\u003ethe Anthias version and the build it came from\u003c/li\u003e\n\u003cli\u003ethe device type, such as \u003ccode\u003epi4-64\u003c/code\u003e or \u003ccode\u003ex86\u003c/code\u003e, the kernel version and architecture, the board model on boards that have a device tree, and whether the device runs on balena\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBy default a report from the web interface also includes the client\u0026#39;s IP address, the signed-in user, and the cookies and other headers that can identify someone. Set \u003ccode\u003eanalytics_opt_out\u003c/code\u003e to \u003ccode\u003eTrue\u003c/code\u003e in \u003ccode\u003eanthias.conf\u003c/code\u003e, the setting that also turns off the usage telemetry, and those are left out. The reports themselves are still sent.\u003c/p\u003e\n\u003cp\u003eErrors that fix themselves aren\u0026#39;t reported, such as Redis restarting or a browser closing a request early.\u003c/p\u003e\n\u003ch2 id=\"turn-it-off-or-send-it-elsewhere\"\u003eTurn it off or send it elsewhere\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003eSENTRY_DSN\u003c/code\u003e environment variable on the \u003ccode\u003eanthias-server\u003c/code\u003e, \u003ccode\u003eanthias-celery\u003c/code\u003e and \u003ccode\u003eanthias-viewer\u003c/code\u003e containers decides where reports go. An empty value turns reporting off. The address (DSN) of your own Sentry project sends the reports there instead.\u003c/p\u003e\n\u003cp\u003eOn a docker-compose install, add \u003ccode\u003eSENTRY_DSN=\u003c/code\u003e to the \u003ccode\u003eenvironment\u003c/code\u003e list of those 3 services in \u003ccode\u003e~/anthias/docker-compose.yml\u003c/code\u003e and recreate the containers. The upgrade script writes that file again from \u003ccode\u003edocker-compose.yml.tmpl\u003c/code\u003e on every upgrade, so add the line again after you upgrade. On balena, set \u003ccode\u003eSENTRY_DSN\u003c/code\u003e as a device variable in balenaCloud.\u003c/p\u003e\n","description":"The web interface, background worker and viewer now report errors to the Anthias maintainers by default, which is how several fixes in this release were found. You can turn the reports off or send them to your own Sentry project instead.","title":"Anthias sends error reports to Sentry, and you can turn them off","type":"release","url":"https://www.screenly.io/releases/anthias/2026.06.3/error-reporting-sentry/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eSeveral things could stop the web interface or the background worker on a running device, or make tasks fail after every upgrade. Anthias 2026.06.3 fixes each of them.\u003c/p\u003e\n\u003ch2 id=\"legacy-time-zone-names\"\u003eLegacy time zone names\u003c/h2\u003e\n\u003cp\u003eA device whose \u003ccode\u003e/etc/timezone\u003c/code\u003e holds an older name such as \u003ccode\u003eUS/Central\u003c/code\u003e crash-looped the web interface and the worker at startup. These names work now, and the device keeps its local time: the images include the legacy time zone data. A name that still can\u0026#39;t be found falls back to UTC.\u003c/p\u003e\n\u003ch2 id=\"unreadable-files-on-the-sd-card\"\u003eUnreadable files on the SD card\u003c/h2\u003e\n\u003cp\u003eIf some of the web interface\u0026#39;s own files on the storage couldn\u0026#39;t be read, for example after file system damage, the web interface stopped at startup and restarted over and over. It now skips the files it can\u0026#39;t read, starts, and logs one error per boot so the fault stays visible.\u003c/p\u003e\n\u003ch2 id=\"database-is-locked\"\u003e\u0026quot;Database is locked\u0026quot;\u003c/h2\u003e\n\u003cp\u003eThe web interface, the background worker and the viewer share one SQLite database. A write from one of them could make another fail at once with a \u003ccode\u003edatabase is locked\u003c/code\u003e error, for example when the viewer read its content list while the worker updated an item. They now wait up to 20 seconds for each other instead of failing, and reads no longer block writes. Databases from older installs switch over the first time they are opened. In this release the change also kept the viewer from noticing content you added or changed until it restarted. \u003ca href=\"/releases/anthias/2026.07.0/fixes-and-improvements/\"\u003eAnthias 2026.07.0\u003c/a\u003e fixes that.\u003c/p\u003e\n\u003ch2 id=\"errors-after-an-upgrade-or-first-boot\"\u003eErrors after an upgrade or first boot\u003c/h2\u003e\n\u003cp\u003eThe worker starts alongside the web interface, which may still be updating the database after an upgrade or on first boot. Tasks that ran in that window failed with \u003ccode\u003eno such table: assets\u003c/code\u003e. The worker now waits until the database is ready, and logs a warning every 30 seconds while it does. Queued tasks stay queued and run once it starts.\u003c/p\u003e\n\u003cp\u003eOn docker-compose installs, the web interface, worker and viewer also wait for Redis to answer before they start.\u003c/p\u003e\n\u003ch2 id=\"reachability-checks\"\u003eReachability checks\u003c/h2\u003e\n\u003cp\u003eThe worker checks whether content that lives at a web address can still be reached. A check that ran past 30 seconds, for example on a slow DNS lookup, was killed along with the worker process running it. A check now gets 60 seconds, and one that runs out of time marks the content as unreachable. Content on your local network, such as an intranet page or another container on the same player, was still marked unreachable and skipped until \u003ca href=\"/releases/anthias/2026.07.0/fixes-and-improvements/\"\u003eAnthias 2026.07.0\u003c/a\u003e; until then, \u003ccode\u003eANTHIAS_ALLOW_PRIVATE_FETCH=1\u003c/code\u003e on the server and worker lets it through.\u003c/p\u003e\n","description":"A device with an older time zone name or damaged files on its SD card no longer crash-loops at startup, and the web interface, worker and viewer wait for each other instead of failing with database locked errors. Tasks that run in the first minutes after an upgrade no longer fail.","title":"The web interface and background worker keep running, and tasks no longer fail after upgrades","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.06.3/server-startup-resilience/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eThe viewer shows images, web pages and video through a separate webview process. When that process stalled or died, a screen could freeze, go dark, or restart the whole viewer container. Anthias 2026.06.3 fixes several ways that happened.\u003c/p\u003e\n\u003ch2 id=\"a-page-that-stops-loading\"\u003eA page that stops loading\u003c/h2\u003e\n\u003cp\u003eIf a web page\u0026#39;s connection stalled halfway, for example when Wi-Fi dropped without closing the connection, the screen stayed frozen on the previous content until the viewer container restarted. The webview now gives each page 30 seconds to finish loading. If it doesn\u0026#39;t, the load is canceled and the same page is requested again. A page that fails right away, such as when the network is down, is retried every 30 seconds too, so a playlist with a single web page recovers once the network is back.\u003c/p\u003e\n\u003cp\u003eTo change the 30 seconds, set \u003ccode\u003eANTHIAS_WEBPAGE_TIMEOUT_S\u003c/code\u003e in the viewer container\u0026#39;s environment. Values are held between 5 and 3600.\u003c/p\u003e\n\u003ch2 id=\"a-webview-that-crashes\"\u003eA webview that crashes\u003c/h2\u003e\n\u003cp\u003eOn the 32-bit Raspberry Pi 2 and Pi 3 image, the webview can crash while it starts. \u003ca href=\"/releases/anthias/2026.06.1/fixes-and-improvements/\"\u003eAnthias 2026.06.1\u003c/a\u003e retries the start, but a crash just after the start, or while the viewer was sending the webview an image or a web page, still restarted the viewer container. On the Raspberry Pi 4 and 5, x86 and arm64, where video plays inside the webview, a webview that died while starting or stopping a video left the screen dark until the next item.\u003c/p\u003e\n\u003cp\u003eIn all these cases the viewer now starts a new webview and sends the same item again. The new webview shows the current item straight away, including when the playlist has only one item, which before stayed blank.\u003c/p\u003e\n\u003ch2 id=\"raspberry-pi-5-and-x86\"\u003eRaspberry Pi 5 and x86\u003c/h2\u003e\n\u003cp\u003eOn the boards whose webview runs inside the \u003ccode\u003ecage\u003c/code\u003e display server (Raspberry Pi 5, x86 and generic arm64 boards), the viewer could start the webview before the display server was ready, for example after the webview restarted. The webview then failed with \u003ccode\u003eFailed to create wl_display\u003c/code\u003e on every attempt and the viewer container restarted. The viewer now waits for the display server first.\u003c/p\u003e\n","description":"A web page that stops loading is requested again instead of freezing the screen, the viewer restarts a crashed webview and carries on, and on Raspberry Pi 5 and x86 the webview no longer fails to start after a restart.","title":"The screen recovers when a web page stalls or the webview crashes","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.06.3/webview-recovery/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003e\u003ca href=\"/releases/anthias/2026.06.1/pi-2-and-pi-3-play-video/\"\u003eAnthias 2026.06.1\u003c/a\u003e brought video back to the 32-bit Raspberry Pi 2 and Pi 3 image, and it played worse than it should in several ways. Anthias 2026.06.3 fixes them.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA portrait or 4:3 clip was stretched to fill the screen. It is now scaled to fit and centered, with black bars around it.\u003c/li\u003e\n\u003cli\u003eA clip shorter than its time in the playlist restarts each time it ends, and every restart froze on the last frame for up to several seconds on a Pi 3, so the clip looked cut off or late. It now loops without a gap.\u003c/li\u003e\n\u003cli\u003eVideo at 50 or 60 frames per second stuttered, because these boards draw about 40 frames per second at 1080p. Such clips now play at an even 30 fps. Clips at 30 fps or lower play as they are.\u003c/li\u003e\n\u003cli\u003eA clip whose sound couldn\u0026#39;t play, for example with HDMI audio turned off or an AC3 soundtrack, failed to play at all. It now plays without sound.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe 64-bit boards use a different video player and aren\u0026#39;t affected.\u003c/p\u003e\n","description":"On the 32-bit Pi 2 and Pi 3 image, portrait and 4:3 clips keep their shape, short clips loop without freezing, 50 and 60 fps video plays at an even 30 fps, and a clip whose sound can't play still shows.","title":"Fixes to video playback on Raspberry Pi 2 and Pi 3","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.06.3/pi-video-fit-and-looping/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eIf videos played with no sound on a Raspberry Pi 4 or 5, an x86 PC or another 64-bit ARM board, they have sound from Anthias 2026.06.3, including over HDMI on x86 PCs with common Intel, AMD and Nvidia audio hardware.\u003c/p\u003e\n\u003cp\u003eThe video player on these boards only plays sound through a PulseAudio sound server, and the viewer container didn\u0026#39;t run one. Now the viewer container starts its own PulseAudio server at boot, with one output for each sound card the container can see, named after the card, such as \u003ccode\u003ealsa_output.vc4hdmi0.hdmi-stereo\u003c/code\u003e. On a Raspberry Pi 4, the \u0026quot;Audio output\u0026quot; setting still chooses between \u0026quot;HDMI\u0026quot; and \u0026quot;3.5mm jack\u0026quot;. On x86 and generic arm64 boards it has no effect until \u003ca href=\"/releases/anthias/2026.07.4/audio-output-on-pcs-and-arm-boards/\"\u003eAnthias 2026.07.4\u003c/a\u003e. After a reboot, sound could still go missing until \u003ca href=\"/releases/anthias/2026.07.1/fixes-and-improvements/\"\u003eAnthias 2026.07.1\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf a video is still silent, run \u003ccode\u003epactl list short sinks\u003c/code\u003e inside the viewer container to see which outputs PulseAudio found.\u003c/p\u003e\n\u003ch2 id=\"x86-with-hdmi-audio\"\u003ex86 with HDMI audio\u003c/h2\u003e\n\u003cp\u003eOn x86 with \u0026quot;Audio output\u0026quot; set to \u0026quot;HDMI\u0026quot;, the viewer asked for a sound device called \u003ccode\u003esysdefault:CARD=HID\u003c/code\u003e, which matches no card on common Intel, AMD and Nvidia audio hardware. It now uses \u003ccode\u003edefault\u003c/code\u003e, which is the PulseAudio default output. Generic arm64 boards already worked this way.\u003c/p\u003e\n","description":"Videos on the Raspberry Pi 4 and 5, x86 PCs and generic arm64 boards played with no sound. They have sound now, including over HDMI on x86 PCs with common Intel, AMD and Nvidia audio hardware.","title":"Video plays with sound on Raspberry Pi 4 and 5, x86 and arm64","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.06.3/video-audio-qt6/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eThere was no Anthias 2026.06.2 release. Its version number was set in the code but never released, so a device running a build made between 2026.06.1 and this release can report its version as 2026.06.2. This release includes everything since 2026.06.1.\u003c/p\u003e\n\u003ch2 id=\"fixes\"\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSaving an item\u0026#39;s \u0026quot;Play from\u0026quot; and \u0026quot;Play until\u0026quot; times in the \u0026quot;Edit asset\u0026quot; window failed with the default 12-hour clock, when \u0026quot;Use 24-hour clock\u0026quot; is off. Times like \u0026quot;02:30 PM\u0026quot; save now. A time that can\u0026#39;t be read shows an error message instead of failing, and filling in only one of the 2 times shows a message and saves nothing. Before, it cleared the item\u0026#39;s existing time window.\u003c/li\u003e\n\u003cli\u003eOn the 32-bit Raspberry Pi 2 and Pi 3 image, HEIC, HEIF, TIFF, BMP, ICO and TGA image uploads failed to convert, with \u003ccode\u003eKeyError: 'WEBP'\u003c/code\u003e in the log. They convert now.\u003c/li\u003e\n\u003cli\u003eA 60 fps video on a Raspberry Pi 4 played slower than real time, at about 0.6 times normal speed in the project\u0026#39;s testing, so the end of a clip could be cut off. The viewer now drops frames evenly when the screen can\u0026#39;t keep up, which plays a 60 fps clip at about 30 fps. This applies to every board with the Qt 6 viewer. Each line of \u003ccode\u003eplayback-stats.log\u003c/code\u003e gains a \u003ccode\u003eframes-forwarded\u003c/code\u003e field between \u003ccode\u003eframes-delivered\u003c/code\u003e and \u003ccode\u003eframes-rendered\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u0026quot;Display Power (CEC)\u0026quot; card on the System Info page showed None even when the display answered the power query. It now shows \u003ccode\u003eTrue\u003c/code\u003e or \u003ccode\u003eFalse\u003c/code\u003e where the CEC adapter can be reached. On a Raspberry Pi 2, 3 or 4 the card still showed \u0026quot;CEC error\u0026quot; until \u003ca href=\"/releases/anthias/2026.08.1/hdmi-cec-rewrite/\"\u003eAnthias 2026.08.1\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRedis now keeps its data when its container is recreated, as it is on every upgrade. Before, it started empty each time, and the ID the usage telemetry uses for the device was lost, so an upgraded device was counted as a new one.\u003c/li\u003e\n\u003cli\u003eA device that can\u0026#39;t reach GitHub to check for a new Anthias release logs a warning instead of an error, and the warning gives the reason, such as a read timeout, instead of \u0026quot;no data\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWhen the webview exits, including when the viewer stops it, the viewer no longer logs a crash report for it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"improvements\"\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen Anthias rejects a video upload, the \u0026quot;Edit asset\u0026quot; window now also lists steps for converting it in HandBrake, a free app for Windows, macOS and Linux, next to the \u003ccode\u003effmpeg\u003c/code\u003e command. The steps use HandBrake\u0026#39;s \u0026quot;Fast 1080p30\u0026quot; preset, and on a Raspberry Pi 5, which only plays HEVC, they add a switch to the H.265 encoder.\u003c/li\u003e\n\u003cli\u003eBackups from Settings \u0026gt; Backup \u0026amp; restore \u0026gt; \u0026quot;Get backup\u0026quot; and from the API use a faster gzip setting. Most of a backup is video and images that are already compressed, so the archive is about the same size. On a large library the download still doesn\u0026#39;t start until the archive is built and can time out. \u003ca href=\"/releases/anthias/2026.07.0/fixes-and-improvements/\"\u003eAnthias 2026.07.0\u003c/a\u003e fixes that.\u003c/li\u003e\n\u003cli\u003eDevices on the official balena fleets that were flashed from an old disk image stayed pinned to the release inside it and never received updates. An hourly job now removes that pin, except on devices tagged \u003ccode\u003eanthias_keep_pinned\u003c/code\u003e. The same job updates balenaOS on up to 5 percent of each fleet\u0026#39;s online devices per run, and moves devices already on the latest balenaOS to the newest balena supervisor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"for-contributors\"\u003eFor contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocker image builds pull the BuildKit frontend through \u003ccode\u003emirror.gcr.io\u003c/code\u003e instead of Docker Hub, so builds no longer fail on Docker Hub timeouts.\u003c/li\u003e\n\u003cli\u003eThe Docker build matrix, the image builder and the balena workflows include \u003ccode\u003epi3-64\u003c/code\u003e, and the balena workflows include \u003ccode\u003erockpi4\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe SBOM workflow works again, and the README\u0026#39;s SBOM badge links to the Anthias page on trust.screenly.io.\u003c/li\u003e\n\u003cli\u003eThe development and test compose files wait for Redis to answer before starting the other services. The test stack\u0026#39;s worker runs with the test environment, so it uses the test database and doesn\u0026#39;t send error reports.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003euv.lock\u003c/code\u003e matches the \u003ccode\u003epyproject.toml\u003c/code\u003e pins again, so \u003ccode\u003euv lock --check\u003c/code\u003e passes on a clean checkout.\u003c/li\u003e\n\u003cli\u003eNew tests cover the error report filtering, the database settings, time zone handling, static files, the backup download, webview recovery and the Pi 2 and Pi 3 video player.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDependency updates also went in, among them uvicorn, the web server, from 0.32.1 to 0.49.0, plus GitHub Actions and Python development tools.\u003c/p\u003e\n","description":"HEIC and TIFF uploads convert on the 32-bit Raspberry Pi 2 and Pi 3 image, 60 fps video on a Raspberry Pi 4 plays at its real speed, and a rejected video comes with HandBrake steps for converting it.","title":"Play from and Play until accept 12-hour times, and other fixes","type":"roundup","url":"https://www.screenly.io/releases/anthias/2026.06.3/fixes-and-improvements/"}],"json":"https://www.screenly.io/releases/anthias/2026.06.3/v1.json","product":"anthias","product_label":"Anthias","url":"https://www.screenly.io/releases/anthias/2026.06.3/","version":"2026.06.3"}],"title":"Anthias 2026.06.3","url":"https://www.screenly.io/releases/anthias/2026.06.3/","version":1}