<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Edge Apps GitHub Actions 26.10.0 | Screenly</title><description>What has shipped across Screenly, newest first.</description><link>https://www.screenly.io/releases/edge-apps-actions/26.10.0/</link><language>en</language><atom:link href="https://www.screenly.io/releases/edge-apps-actions/26.10.0/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Thu, 08 Oct 2026 00:00:00 +0000</lastBuildDate><item><title>Edge Apps GitHub Actions 26.10.0: The update action needs an edge_app_id on every deploy</title><link>https://www.screenly.io/releases/edge-apps-actions/26.10.0/update-requires-edge-app-id/</link><guid isPermaLink="true">https://www.screenly.io/releases/edge-apps-actions/26.10.0/update-requires-edge-app-id/</guid><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><category>improvement</category><category>developers</category><description>&lt;p&gt;&lt;code&gt;update&lt;/code&gt; requires &lt;code&gt;edge_app_id&lt;/code&gt; now. If it&amp;rsquo;s empty, or holds a leftover like &lt;code&gt;false&lt;/code&gt;, &lt;code&gt;null&lt;/code&gt;, or &lt;code&gt;0&lt;/code&gt;
from an expression that didn&amp;rsquo;t resolve to an id, the run stops in its first step and names the
variable to set: &lt;code&gt;STAGE_EDGE_APP_ID&lt;/code&gt; or &lt;code&gt;PRODUCTION_EDGE_APP_ID&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Both &lt;code&gt;initialize&lt;/code&gt; and &lt;code&gt;update&lt;/code&gt; also stop before doing anything else when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screenly_api_token&lt;/code&gt; is empty. The error asks you to add the &lt;code&gt;SCREENLY_API_TOKEN&lt;/code&gt; secret for that
environment, since stage and production each need one.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;environment&lt;/code&gt; is anything other than &lt;code&gt;stage&lt;/code&gt; or &lt;code&gt;production&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Screenly rejects the token for that environment. &lt;code&gt;initialize&lt;/code&gt; checks this now too, before it
creates an app.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;initialize&lt;/code&gt; treats the same leftovers (&lt;code&gt;false&lt;/code&gt;, &lt;code&gt;null&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt;, and so on) as no id at all, so a first
run creates the app as expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If this affects you:&lt;/strong&gt; if any &lt;code&gt;update&lt;/code&gt; step runs without &lt;code&gt;edge_app_id&lt;/code&gt;, add the repository
variables &lt;code&gt;STAGE_EDGE_APP_ID&lt;/code&gt; and &lt;code&gt;PRODUCTION_EDGE_APP_ID&lt;/code&gt; with each environment&amp;rsquo;s Edge App id, and
pass &lt;code&gt;edge_app_id: ${{ vars.STAGE_EDGE_APP_ID }}&lt;/code&gt; or &lt;code&gt;${{ vars.PRODUCTION_EDGE_APP_ID }}&lt;/code&gt; to each
&lt;code&gt;update&lt;/code&gt; step. Check that both environments have a &lt;code&gt;SCREENLY_API_TOKEN&lt;/code&gt; secret before you bump your
pin to &lt;code&gt;v26.10.0&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>