Blobs and the NETLIFY_BLOBS_CONTEXT environment variable

Hi,
I’m pulling my hair over using Netlify Blobs in a Astro server side rendered deployment. One visitor continuously sets a status of presence every few seconds, and the another visitor reads it about the same frequency for a minute or so.
After a new deployment, this works great for a few minutes, but then it errors out saying the api key is expired.

Mar 14, 08:19:57 PM: f2491f3e ERROR  20:19:57 [ERROR] BlobsInternalError: Netlify Blobs has generated an internal error (Failed to decode token: Token expired)

I have set the appropriate NETLIFY_BLOBS_CONTEXT (On all deploy contexts). The api key used for the base64-encoded json is set to never expire.

The url’s involved are
https://headroom.kioskkiosk.com/set-here.json (sets status)
https://headroom.kioskkiosk.com/is-here.json (reads status)
https://headroom.kioskkiosk.com/door (redirects to the appropriate image based on status)
(yeah I will rename them thank you)

set-here.json.js:

import { createStorage } from 'unstorage';
import netlifyBlobsDriver from 'unstorage/drivers/netlify-blobs';

export const prerender = false;

const storage = createStorage({
    driver: netlifyBlobsDriver({
        name: 'door',
        consistency: 'strong'
    })
});

export async function GET({ params, request }) {
    let wasOpen = await storage.getItem('open');
    await storage.setItem('open', new Date(Date.now() + 1000 * 20).toISOString());
    return new Response(JSON.stringify({ open: await storage.getItem('open'), wasOpen }));
}

is-here.json.js:

import { createStorage } from 'unstorage';
import netlifyBlobsDriver from 'unstorage/drivers/netlify-blobs';

export const prerender = false;

const storage = createStorage({
    driver: netlifyBlobsDriver({
        name: 'door',
        consistency: 'strong'
    })
});

export async function GET({ params, request }) {
    let openTime = Date.parse((await storage.getItem('open')) + '');
    let expireTime = openTime ? new Date(openTime).getTime() : 0;
    let isOpen = expireTime > Date.now();
    return new Response(JSON.stringify({ isOpen, openTime, expireTime }));
}

door.astro:

---
import { createStorage } from 'unstorage';
import netlifyBlobsDriver from 'unstorage/drivers/netlify-blobs';

export const prerender = false;

const storage = createStorage({
    driver: netlifyBlobsDriver({
        name: 'door',
        consistency: 'strong'
    })
});

let openTime = Date.parse((await storage.getItem('open')) + '');
let expireTime = openTime ? new Date(openTime).getTime() : 0;
let isOpen = expireTime > Date.now();
return Astro.redirect(`/images/${isOpen ? 'open' : 'closed'}.png`);
---

I really don’t get why it works for a bit then stops.

Any particular reason to use unstorage over @netlify/blobs directly? Asking because @netlify/blobs will not rely on the token in your environment variable to handle this.