Skip to content

fix(ops): distinguish the two identical simulation-failure messages #2

Description

@0dillon

Summary

src/ops/extendViaContract.ts throws simulation of extend_all failed: ${sim.error} in two
different places — once in simulateExtendAll, which is the free drift probe that runs every tick,
and once in extendViaContract, which is the paid path just before signing.

An operator reading a log line cannot tell which one failed, and the two mean very different things.
A failure in the first costs nothing and only loses drift reporting. A failure in the second means
maintenance did not happen.

Acceptance Criteria

  • The two messages differ enough to identify the call site from a log line alone.
  • The distinction is meaningful to an operator — which one failed and what it cost — not just a
    different string.
  • The drift simulation failed log line in src/keeper/loop.ts still reads correctly with the
    new message.

Tech Stack

TypeScript 5.7 on Node 22+ (CI runs 22 and 24), ESM with moduleResolution: "NodeNext" — relative
imports need the .js extension. @stellar/stellar-sdk is pinned to an exact version; verify RPC
API shape against the installed copy, not against documentation. Tests are Vitest under test/ and
run without a network. npm run format:check, npm run lint, npm run build and npm test must
all be clean.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: opssrc/ops, the two signing pathscomplexity: lowAn hour or two, no design decisionstype: bugExisting behaviour is wrong

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions