google-gemini/gemini-cli · error · Error
Updated extension not found after installation, got error:\n
Error message
Updated extension not found after installation, got error:\n${e} What it means
Thrown when extensionManager.installOrUpdateExtension rejects during an update. The updater catches the install error, sets the extension state to ERROR, and re-throws with the original error interpolated into the message.
Source
Thrown at packages/cli/src/config/extensions/update.ts:118
const originalVersion = extension.version;
const tempDir = await ExtensionStorage.createTmpDir();
try {
const previousExtensionConfig = await extensionManager.loadExtensionConfig(
extension.path,
);
let updatedExtension: GeminiCLIExtension;
try {
updatedExtension = await extensionManager.installOrUpdateExtension(
installMetadata,
previousExtensionConfig,
);
} catch (e) {
dispatchExtensionStateUpdate({
type: 'SET_STATE',
payload: { name: extension.name, state: ExtensionUpdateState.ERROR },
});
throw new Error(
`Updated extension not found after installation, got error:\n${e}`,
);
}
const updatedVersion = updatedExtension.version;
dispatchExtensionStateUpdate({
type: 'SET_STATE',
payload: {
name: extension.name,
state: enableExtensionReloading
? ExtensionUpdateState.UPDATED
: ExtensionUpdateState.UPDATED_NEEDS_RESTART,
},
});
return {
name: extension.name,
originalVersion,
updatedVersion,
};View on GitHub (pinned to 5024443c72)
Solutions
- Read the interpolated error (\n${e}) to find the underlying install failure and fix it.
- Free space / fix permissions on the extensions directory and retry.
- Serialize updates per-extension to avoid concurrent-install races.
Example fix
// before
try { updatedExtension = await installOrUpdateExtension(meta, prev); }
catch (e) { throw new Error(`Updated extension not found...\n${e}`); }
// after
try { updatedExtension = await installOrUpdateExtension(meta, prev); }
catch (e) {
logger.error('install/update failed for %s:', extension.name, e);
throw new Error(`Updated extension not found after installation: ${getErrorMessage(e)}`, { cause: e });
} Defensive patterns
Strategy: try-catch
Try / catch
try { await checkForExtensionUpdate(ext, mgr); } catch (e) { const msg = String(e); if (/not found after installation/.test(msg)) { logInstallFailure(ext.name, e); } throw e; } Prevention
- Free disk space and verify permissions before batch updates.
- Serialize updates per extension to avoid install races.
When it happens
Trigger: installOrUpdateExtension fails: clone/release download error, disk full, destination not writable, version resolution finds nothing newer, or a write conflict.
Common situations: Network blip during re-download; out of disk space; permissions changed on the extensions directory; concurrent update attempts racing on the same extension.
Related errors
- Failed to clone Git repository from ${installMetadata.source
- Extension ${extension.name} cannot be updated. ${getErrorMes
- Unable to find any remotes for repo ${installMetadata.source
- Unsupported file extension for extraction: ${file}
- Extension ${extension.name} cannot be updated, type is unkno
AI-assisted analysis of google-gemini/gemini-cli@5024443c72 (2026-08-12).
Data as JSON: /api/errors/f78faffa0ce61797.
Report an issue: GitHub.