different-ai/openwork · error

Recovery installer checksum did not match its signed manifes

Error message

Recovery installer checksum did not match its signed manifest.

What it means

Error "Recovery installer checksum did not match its signed manifest." thrown in different-ai/openwork.

Source

Thrown at apps/desktop/electron/recovery.mjs:198

export function recoveryVersionMarkers(installedVersion, persistedState) {
  const currentVersion = stableVersion(installedVersion);
  const persistedCurrent = stableVersion(persistedState?.currentVersion);
  const persistedPrevious = stableVersion(persistedState?.previousVersion);
  return {
    currentVersion,
    previousVersion: persistedCurrent && persistedCurrent !== currentVersion
      ? persistedCurrent
      : persistedPrevious,
  };
}

export async function cacheVerifiedRecoveryArtifact({ app, artifact, fetchArtifact }) {
  const response = await fetchArtifact(artifact.url);
  if (!response.ok) throw new Error(`Recovery download failed with HTTP ${response.status}.`);
  const bytes = Buffer.from(await response.arrayBuffer());
  const checksum = createHash("sha512").update(bytes).digest("base64");
  if (checksum !== artifact.sha512) throw new Error("Recovery installer checksum did not match its signed manifest.");
  const cacheDirectory = path.join(app.getPath("userData"), RECOVERY_CACHE_DIRECTORY);
  const stagingDirectory = `${cacheDirectory}.staging`;
  const backupDirectory = `${cacheDirectory}.backup`;
  const fileName = path.basename(new URL(artifact.url).pathname);
  await rm(stagingDirectory, { recursive: true, force: true });
  await mkdir(stagingDirectory, { recursive: true });
  await writeFile(path.join(stagingDirectory, fileName), bytes);
  await writeFile(
    path.join(stagingDirectory, "metadata.json"),
    `${JSON.stringify({ ...artifact, checksum, fileName }, null, 2)}\n`,
    "utf8",
  );
  await rm(backupDirectory, { recursive: true, force: true });
  let previousMoved = false;
  try {
    await rename(cacheDirectory, backupDirectory);
    previousMoved = true;
  } catch {

View on GitHub (pinned to 2b7df46e8a)

When it happens

Trigger: Thrown at apps/desktop/electron/recovery.mjs:198 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of different-ai/openwork@2b7df46e8a (2026-09-01). Data as JSON: /api/errors/046292f9143146fa. Report an issue: GitHub.