thedotmack/claude-mem · error

pull ${res.status}: ${(await res.text().catch(() => "")).sli

Error message

pull ${res.status}: ${(await res.text().catch(() => "")).slice(0, 200)}

What it means

Error "pull ${res.status}: ${(await res.text().catch(() => "")).slice(0, 200)}" thrown in thedotmack/claude-mem.

Source

Thrown at workers/sync-hub/canary/canary.ts:261

			acked: Array<{ operation_sha256: string; seq: string }>;
			head_seq: string;
		};
		const ack = parsed.acked.find((a) => a.operation_sha256 === operationSha256);
		if (!ack) throw new Error("push response did not ack the canary op");
		return { seq: ack.seq, headSeq: parsed.head_seq, opSha: operationSha256 };
	}

	private async pull(
		deviceId: string,
		since: string,
	): Promise<{ ops: Array<{ seq: string; operation_sha256: string }>; headSeq: string }> {
		const res = await fetch(`${this.args.hub}/v1/sync/changes?since=${since}&limit=500`, {
			headers: this.headers(deviceId),
			signal: AbortSignal.timeout(this.args.timeoutMs),
		});
		this.noteMode(res);
		if (!res.ok) {
			throw new Error(`pull ${res.status}: ${(await res.text().catch(() => "")).slice(0, 200)}`);
		}
		const parsed = (await res.json()) as {
			ops: Array<{ seq: string; operation_sha256: string }>;
			head_seq: string;
		};
		return { ops: parsed.ops, headSeq: parsed.head_seq };
	}

	/** Start both cursors at the current head — only NEW ops matter. */
	async init(): Promise<void> {
		const res = await fetch(`${this.args.hub}/v1/sync/status`, {
			headers: this.headers(DEVICE_A),
			signal: AbortSignal.timeout(this.args.timeoutMs),
		});
		this.noteMode(res);
		if (!res.ok) {
			throw new Error(`status ${res.status}: ${(await res.text().catch(() => "")).slice(0, 200)}`);
		}

View on GitHub (pinned to d768ba3643)

Solutions

  1. Inspect the status code and body in the message and fix the cause (auth, hub availability, or bad since cursor).
  2. Verify the canary's hub URL and device credentials, then rerun.

When it happens

Trigger: Fires in the sync-hub canary when the pull endpoint returns a non-2xx status, e.g. hub downtime, auth failure, or a malformed since/head_seq cursor. Guard at workers/sync-hub/canary/canary.ts:261 fails the canary with a truncated body excerpt so monitoring catches pull-path breakage independent of push.

Common situations: See trigger scenarios.


AI-assisted analysis of thedotmack/claude-mem@d768ba3643 (2026-08-12). Data as JSON: /api/errors/89f1c1915a9daddf. Report an issue: GitHub.