paperclipai/paperclip · error · Error
Failed to reset local git index to HEAD after workspace…
Error message
Failed to reset local git index to HEAD after workspace restore: ${detail} What it means
resetLocalGitIndexToHead's 'git reset HEAD -- .' failed after workspace restore; message/stderr details are attached so the index state can be diagnosed.
Solutions
- Inspect the detail and fix the git index state manually (`git reset`), then retry.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at packages/adapter-utils/src/git-workspace-sync.ts:618 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18).
Data as JSON: /api/errors/d1f925ae667c2716.
Report an issue: GitHub.
Appendix: source
Thrown at packages/adapter-utils/src/git-workspace-sync.ts:682
* sandbox rather than discarding the run.
*/
export function isMissingGitPrerequisiteError(error: unknown): boolean {
const message = error instanceof Error ? error.message : String(error);
return GIT_MISSING_PREREQUISITE_MARKERS.some((marker) => message.includes(marker));
}
export function buildRemoteGitDeltaBundleScript(input: {
remoteDir: string;
baseSha: string;
exportRef: string;
bundlePath: string;
statusPath?: string;
catBundle?: boolean;
cleanupBundle?: boolean;
/**
* Skip the delta boundary entirely and always emit a full, self-contained
* bundle (no prerequisites). Used as the recovery path when a delta import
* failed because the host lacked the bundle's prerequisite.
*/
forceFullBundle?: boolean;
}): string {
const remoteDir = shellQuote(input.remoteDir);
const bundlePath = shellQuote(input.bundlePath);
const exportRef = shellQuote(input.exportRef);
const baseSha = shellQuote(input.baseSha);
const statusPath = input.statusPath ? shellQuote(input.statusPath) : null;
const cleanupParts = [
`rm -f ${bundlePath}`,
...(statusPath ? [`rm -f ${statusPath}`] : []),
`git -C ${remoteDir} update-ref -d ${exportRef} >/dev/null 2>&1 || true`,
];
return [
"set -e",
input.cleanupBundle ? `cleanup() { ${cleanupParts.join("; ")}; }` : "",
input.cleanupBundle ? "trap cleanup EXIT" : "",
`mkdir -p ${shellQuote(path.posix.dirname(input.bundlePath))}`,View on GitHub (pinned to 3f1d897a7c)