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

  1. 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.