MemPalace/mempalace · error · SyncPeerError
{url}: peer served event {event.get('id')!r} but not its art
Error message
{url}: peer served event {event.get('id')!r} but not its artifact {artifact_id!r} What it means
Error "{url}: peer served event {event.get('id')!r} but not its artifact {artifact_id!r}" thrown in MemPalace/mempalace.
Source
Thrown at mempalace/logsync.py:92
_peer_get(
url,
token,
"/sync/ops",
{"origin": origin, "after": after, "limit": _PULL_BATCH},
).get("events")
or []
)
if not batch:
break # peer's vector promised more than it served; stop cleanly
for event in batch:
for artifact_id in event.get("artifact_ids") or []:
if ls.has_artifact(artifact_id):
continue
artifact = _peer_get(url, token, "/sync/artifact", {"id": artifact_id}).get(
"artifact"
)
if not artifact:
raise SyncPeerError(
f"{url}: peer served event {event.get('id')!r} but not "
f"its artifact {artifact_id!r}"
)
if ls.apply_remote_artifact(artifact):
pulled_artifacts += 1
if ls.apply_remote_event(event):
pulled_events += 1
origin_pulled += 1
after = max(after, event.get("origin_seq") or 0)
if origin_pulled:
per_origin[origin] = origin_pulled
return {
"peer_url": url,
"peer_replica": remote_replica,
"pulled_events": pulled_events,
"pulled_artifacts": pulled_artifacts,
"per_origin": per_origin,View on GitHub (pinned to 06cb6987f0)
Solutions
- Re-run sync against the peer; if it persists, the peer's log is incomplete - repair or re-seed the peer
When it happens
Trigger: Thrown at mempalace/logsync.py:92 when the library encounters an invalid state.
Common situations: Peer referenced an artifact it did not actually serve.
AI-assisted analysis of MemPalace/mempalace@06cb6987f0 (2026-08-15).
Data as JSON: /api/errors/d6d91a7a0fbae83a.
Report an issue: GitHub.