{"product":"edge-apps-actions","releases":[{"date":"2026-10-08","entries":[{"areas":["developers"],"breaking":true,"content_html":"\u003cp\u003e\u003ccode\u003eupdate\u003c/code\u003e requires \u003ccode\u003eedge_app_id\u003c/code\u003e now. If it\u0026rsquo;s empty, or holds a leftover like \u003ccode\u003efalse\u003c/code\u003e, \u003ccode\u003enull\u003c/code\u003e, or \u003ccode\u003e0\u003c/code\u003e\nfrom an expression that didn\u0026rsquo;t resolve to an id, the run stops in its first step and names the\nvariable to set: \u003ccode\u003eSTAGE_EDGE_APP_ID\u003c/code\u003e or \u003ccode\u003ePRODUCTION_EDGE_APP_ID\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eBoth \u003ccode\u003einitialize\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e also stop before doing anything else when:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003escreenly_api_token\u003c/code\u003e is empty. The error asks you to add the \u003ccode\u003eSCREENLY_API_TOKEN\u003c/code\u003e secret for that\nenvironment, since stage and production each need one.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eenvironment\u003c/code\u003e is anything other than \u003ccode\u003estage\u003c/code\u003e or \u003ccode\u003eproduction\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eScreenly rejects the token for that environment. \u003ccode\u003einitialize\u003c/code\u003e checks this now too, before it\ncreates an app.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003einitialize\u003c/code\u003e treats the same leftovers (\u003ccode\u003efalse\u003c/code\u003e, \u003ccode\u003enull\u003c/code\u003e, \u003ccode\u003e0\u003c/code\u003e, and so on) as no id at all, so a first\nrun creates the app as expected.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eIf this affects you:\u003c/strong\u003e if any \u003ccode\u003eupdate\u003c/code\u003e step runs without \u003ccode\u003eedge_app_id\u003c/code\u003e, add the repository\nvariables \u003ccode\u003eSTAGE_EDGE_APP_ID\u003c/code\u003e and \u003ccode\u003ePRODUCTION_EDGE_APP_ID\u003c/code\u003e with each environment\u0026rsquo;s Edge App id, and\npass \u003ccode\u003eedge_app_id: ${{ vars.STAGE_EDGE_APP_ID }}\u003c/code\u003e or \u003ccode\u003e${{ vars.PRODUCTION_EDGE_APP_ID }}\u003c/code\u003e to each\n\u003ccode\u003eupdate\u003c/code\u003e step. Check that both environments have a \u003ccode\u003eSCREENLY_API_TOKEN\u003c/code\u003e secret before you bump your\npin to \u003ccode\u003ev26.10.0\u003c/code\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n","description":"update stops before building when edge_app_id is empty, and both actions stop early on an empty API token or an unknown environment, with an error that names what to set.","title":"The update action needs an edge_app_id on every deploy","type":"improvement","url":"https://www.screenly.io/releases/edge-apps-actions/26.10.0/update-requires-edge-app-id/"}],"json":"https://www.screenly.io/releases/edge-apps-actions/26.10.0/v1.json","product":"edge-apps-actions","product_label":"Edge Apps GitHub Actions","url":"https://www.screenly.io/releases/edge-apps-actions/26.10.0/","version":"26.10.0"}],"title":"Edge Apps GitHub Actions 26.10.0","url":"https://www.screenly.io/releases/edge-apps-actions/26.10.0/","version":1}