Skip to content

🥅 server: handle no-proposal as success in proposal execution#772

Merged
cruzdanilo merged 1 commit intomainfrom
no-proposal
Feb 13, 2026
Merged

🥅 server: handle no-proposal as success in proposal execution#772
cruzdanilo merged 1 commit intomainfrom
no-proposal

Conversation

@cruzdanilo
Copy link
Member

@cruzdanilo cruzdanilo commented Feb 13, 2026


Open with Devin

Summary by CodeRabbit

Bug Fixes

  • Enhanced error handling in proposal execution workflows to properly recognize and treat no-proposal errors as successful outcomes. This prevents unnecessary error reporting, reduces false failure notifications, and ensures accurate transaction queue management when proposals are unavailable, improving overall system reliability and transaction processing accuracy in edge cases.

@changeset-bot
Copy link

changeset-bot bot commented Feb 13, 2026

🦋 Changeset detected

Latest commit: de02358

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@exactly/server Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@gemini-code-assist
Copy link

Summary of Changes

Hello @cruzdanilo, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the server's proposal execution mechanism by gracefully handling NoProposal contract errors. Previously, such errors might have been treated as failures, leading to unnecessary logging or retries. Now, when a NoProposal error occurs, the system correctly identifies it as an expected condition, marks the operation as aborted, and removes the proposal from the processing queue, ensuring smoother operation and preventing false positives in error monitoring.

Highlights

  • Error Handling: Modified the proposal execution error handling to treat NoProposal contract errors as a successful abortion, similar to NonceTooLow errors, preventing unnecessary error logging and retries.
  • Test Coverage: Added a new test case to specifically verify the correct handling of NoProposal errors within the block.ts hook.
  • Test Refinement: Updated an existing test case to use an Unauthorized error for contract revert fingerprinting, avoiding conflict with the new NoProposal error handling logic.
Changelog
  • .changeset/brave-falcon-catch.md
    • Added a new changeset entry for the NoProposal error handling feature.
  • server/hooks/block.ts
    • Updated error handling logic to include NoProposal as a non-critical error.
    • Ensured proposals with NoProposal errors are removed from the Redis queue.
  • server/test/hooks/block.test.ts
    • Added a new test case to validate the NoProposal error handling.
    • Refactored an existing test to use an Unauthorized error for contract revert fingerprinting.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link

coderabbitai bot commented Feb 13, 2026

Walkthrough

This PR handles "NoProposal" as a success condition in proposal execution. It adds a changeset file documenting the change, modifies server/hooks/block.ts to treat NoProposal errors as abort conditions alongside NonceTooLow, and updates corresponding tests to verify this behavior.

Changes

Cohort / File(s) Summary
Changeset Documentation
.changeset/brave-falcon-catch.md
New changeset entry indicating patch version bump for @exactly/server with note about handling no-proposal as success.
Error Handling Logic
server/hooks/block.ts
Expanded failure condition in scheduleMessage to treat both NonceTooLow and NoProposal errors as abort conditions, marking messages as aborted in additional error cases.
Tests
server/test/hooks/block.test.ts
Added test cases for NoProposal error handling in outer catch paths; updated error handling expectations to use Unauthorized instead of NoProposal in legacy withdraw tests.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • nfmelendez
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: treating NoProposal errors as success in proposal execution, which aligns with the changeset and code modifications.
Merge Conflict Detection ✅ Passed ✅ No merge conflicts detected when merging into main

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch no-proposal

No actionable comments were generated in the recent review. 🎉


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sentry
Copy link

sentry bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.29%. Comparing base (cebdd0b) to head (de02358).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #772      +/-   ##
==========================================
+ Coverage   68.15%   68.29%   +0.14%     
==========================================
  Files         207      207              
  Lines        6949     6949              
  Branches     2167     2167              
==========================================
+ Hits         4736     4746      +10     
+ Misses       2021     2013       -8     
+ Partials      192      190       -2     
Flag Coverage Δ
e2e 52.50% <ø> (-15.65%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly handles the NoProposal error case during proposal execution by treating it as a success, preventing unnecessary error reports for an expected condition. The change is simple and effective. A new test case has been added to verify this behavior. I've suggested a minor improvement in the new test to adhere to the project's type safety guidelines by avoiding a non-null assertion, which aligns with existing rules.

Copy link

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 4 additional findings.

Open in Devin Review

@cruzdanilo cruzdanilo merged commit de02358 into main Feb 13, 2026
15 checks passed
@cruzdanilo cruzdanilo deleted the no-proposal branch February 13, 2026 14:23
@sentry
Copy link

sentry bot commented Feb 15, 2026

Sentry Issue: SERVER-HE

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant