{"record":{"id":"17cae958173c5592","repo":"different-ai/openwork","slug":"version-specific-update-feeds-are-supported-only-o","errorCode":null,"errorMessage":"Version-specific update feeds are supported only on the stable channel.","messagePattern":"Version-specific update feeds are supported only on the stable channel\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"apps/desktop/electron/updater.mjs","lineNumber":206,"sourceCode":"      ? targetedStableUpdaterFeed(currentVersion, targetVersion)\n      : electronUpdaterFeedUrl(normalized, manifestChannel),\n    currentVersion,\n  };\n}\n\nasync function applyElectronUpdaterFeed(\n  app,\n  updater,\n  targetVersion = null,\n  manifestChannel = \"latest\",\n  allowOlder = false,\n  channelOverride,\n) {\n  const channel = channelOverride === undefined\n    ? await readElectronUpdaterChannel(app, manifestChannel)\n    : normalizeElectronUpdaterChannel(channelOverride, manifestChannel);\n  if (targetVersion && channel !== \"stable\") {\n    throw new Error(\"Version-specific update feeds are supported only on the stable channel.\");\n  }\n  const currentVersion = resolveAppVersion(app);\n  const state = targetVersion\n    ? {\n        channel,\n        feedUrl: targetedStableUpdaterFeed(currentVersion, targetVersion, allowOlder),\n        currentVersion,\n      }\n    : updaterChannelState(app, channel, null, manifestChannel);\n  updater.allowPrerelease = state.channel === \"alpha\";\n  // Moving from alpha back to stable can be a semver downgrade; still show\n  // the latest stable so users can return to the stable channel deliberately.\n  updater.allowDowngrade = state.channel === \"stable\" && (!targetVersion || allowOlder);\n  // Select the manifest through the generic provider's own `channel` option\n  // rather than AppUpdater#channel: that setter is a no-op unless the instance\n  // was constructed with a channel, which would silently leave a custom\n  // distribution reading latest*.yml and updating itself into the public app.\n  // Public builds pass no channel and keep the provider's `latest` default.","sourceCodeStart":188,"sourceCodeEnd":224,"githubUrl":"https://github.com/different-ai/openwork/blob/2b7df46e8ae1517d64c896c7793d2d52ec845669/apps/desktop/electron/updater.mjs#L188-L224","documentation":"Error \"Version-specific update feeds are supported only on the stable channel.\" thrown in different-ai/openwork.","triggerScenarios":"Thrown at apps/desktop/electron/updater.mjs:206 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2b7df46e8ae1517d64c896c7793d2d52ec845669","analyzedAt":"2026-09-01T07:59:23.713Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}