Skip to content

feat: log proposal rejection reasons on the indexer side#968

Closed
MoonBoi9001 wants to merge 2 commits intomain-dipsfrom
feat/dips-rejection-logging
Closed

feat: log proposal rejection reasons on the indexer side#968
MoonBoi9001 wants to merge 2 commits intomain-dipsfrom
feat/dips-rejection-logging

Conversation

@MoonBoi9001
Copy link
Copy Markdown
Member

@MoonBoi9001 MoonBoi9001 commented Mar 4, 2026

TL;DR

When the indexer rejects a paid indexing proposal, today nothing about why is recorded on the indexer side — only the consumer sees the reason. This change writes the rejection reason and proposed deployment ID to the indexer's logs at info level. The change is logging-only, with no behaviour or wire format changes.

Motivation

When a payer submits a paid indexing agreement proposal to the indexer, the indexer's service responds over its proposal API with a reject reason but writes nothing to its own logs. An operator looking at the indexer's logs alone can see that proposals are flowing in and being rejected, but cannot tell which subgraph deployment was being proposed or why each one was turned down. Diagnosing a wave of rejections then requires correlating with the consumer side, which an indexer operator may not have access to.

Summary

  • Add a helper that does best-effort decoding of a proposal to recover the deployment ID
  • Record the reject reason, deployment ID, and error text on the rejection log line
  • Drop the rejection log level from warn to info, since rejections are normal protocol flow

@MoonBoi9001 MoonBoi9001 force-pushed the feat/dips-rejection-logging branch from 02746b3 to 63c0c2a Compare March 4, 2026 17:13
@MoonBoi9001 MoonBoi9001 marked this pull request as ready for review March 18, 2026 01:16
@MoonBoi9001 MoonBoi9001 added the DIPs Decentralized Indexing Payments label Apr 17, 2026
MoonBoi9001 and others added 2 commits May 7, 2026 13:57
When an RCA proposal is rejected, log the rejection reason, error, and
deployment ID (when decodable) at INFO level. Previously the rejection
was returned via the gRPC response with no server-side log at INFO,
making debugging difficult without access to the client.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@MoonBoi9001 MoonBoi9001 force-pushed the feat/dips-rejection-logging branch from d67f78c to a327c46 Compare May 7, 2026 05:58
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

Coverage Report for CI Build 25478599586

Warning

No base build found for commit ad67f05 on main-dips.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 71.42%

Details

  • Patch coverage: 6 uncovered changes across 1 file (0 of 6 lines covered, 0.0%).

Uncovered Changes

File Changed Covered %
crates/dips/src/lib.rs 6 0 0.0%

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 15133
Covered Lines: 10808
Line Coverage: 71.42%
Coverage Strength: 108.41 hits per line

💛 - Coveralls

@MoonBoi9001 MoonBoi9001 changed the title feat(dips): log proposal rejections at INFO level feat: log proposal rejection reasons on the indexer side May 7, 2026
@MoonBoi9001
Copy link
Copy Markdown
Member Author

Superseded by #1032 — work bundled into a single DIPs observability PR. The commits from this branch are cherry-picked into mb9/dips-observability-improvements.

@MoonBoi9001 MoonBoi9001 closed this May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DIPs Decentralized Indexing Payments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant