diegosouzapw/OmniRoute · error

Plugin '${name}' upgrade rejected: source version ${manifest

Error message

Plugin '${name}' upgrade rejected: source version ${manifest.version} is not newer than installed ${existing.version}

What it means

Error "Plugin '${name}' upgrade rejected: source version ${manifest.version} is not newer than installed ${existing.version}" thrown in diegosouzapw/OmniRoute.

Source

Thrown at src/lib/plugins/manager.ts:293

        throw new Error(
          `No valid plugin found in ${sourceDir}: ${errors.map((e) => e.error).join(", ")}`
        );
      }
      discovered = plugins[0];
    }

    const { name, manifest } = discovered;

    // Must be already installed
    if (!pluginExists(name)) {
      throw new Error(`Plugin '${name}' is not installed — use install() instead`);
    }

    const existing = getPluginByName(name)!;

    // Source must be strictly newer
    if (compareSemver(manifest.version, existing.version) <= 0) {
      throw new Error(
        `Plugin '${name}' upgrade rejected: source version ${manifest.version} is not newer than installed ${existing.version}`
      );
    }

    log.info("manager.upgrading", { name, from: existing.version, to: manifest.version });

    // Deactivate if active before touching files
    if (existing.status === "active") {
      await this.deactivate(name);
    }

    // CRITICAL-3: Copy to staging dir first, validate manifest.main, then swap atomically.
    const destDir = join(this.pluginDir, name);
    const stagingDir = `${destDir}.staging-${randomUUID()}`;
    await mkdir(dirname(destDir), { recursive: true });
    await cp(discovered.pluginDir, stagingDir, { recursive: true });

    try {

View on GitHub (pinned to a179ffed5b)

When it happens

Trigger: Thrown at src/lib/plugins/manager.ts:293 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25). Data as JSON: /api/errors/a15066c3f32b6ade. Report an issue: GitHub.