Poster for embedded image does not always render
I published a free screensaver a few years ago : BPOD
It has worked pretty flawlessly until what I believe is the Roku 12 update. Since then there has been a very weird and rare problem that I was able to capture in this screenshot:
The clock should display: "20:14" the : and 4 are missing
The screensaver displays an image (retrieved from Bing) and a clock. All the digits (and the colon) are embedded in the app. They are not fetched from the network.
The clock code is this:
<component name="Clock" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" extends="Group" xsi:noNamespaceSchemaLocation="http://rokudev.roku.com/rokudev/schema/RokuSceneGraph.xsd">
<children>
<Poster id="h0" translation="[0, 0]" width="66" height="92"/>
<Poster id="h1" translation="[56, 0]" width="66" height="92"/>
<Poster translation="[98, 0]" uri="pkg:/images/clock_separator.png" width="66" height="92"/>
<Poster id="m0" translation="[139, 0]" width="66" height="92"/>
<Poster id="m1" translation="[195, 0]" width="66" height="92"/>
<Timer id="tickTimer"
repeat="true"
duration="1" />
</children>
<script type="text/brightscript" uri="pkg:/components/Clock.brs"/>
</component>
Each digit is computed in the Clock.brs script and assigned to each poster something like:
m.top.findNode("m1").uri = "pkg:/images/clock_4.png"
I don't understand why
a) this can ever fail because the images are embedded, especially the colon which is only ever created/assigned in the xml file, never via code
b) it happens rarely: either it should always work or always fail again because the images are embedded, not relying on a server being up
I don't even know how I could detect that there was an error loading the Poster in the first place and even so what I could do to fix it.
As I pointed out earlier, this issue never happened until Roku 12.
Any help would be appreciated
Thanks