Skip to content

[AIKIDO-13126609] Raise HTTP exception if device not found#3030

Merged
gantoine merged 2 commits intomasterfrom
aikido-13126609
Feb 16, 2026
Merged

[AIKIDO-13126609] Raise HTTP exception if device not found#3030
gantoine merged 2 commits intomasterfrom
aikido-13126609

Conversation

@gantoine
Copy link
Copy Markdown
Member

Description
Explain the changes or enhancements you are proposing with this pull request.

When running Python in production in optimized mode, assert calls are not executed. This mode is enabled by setting the PYTHONOPTIMIZE command line flag. Optimized mode is usually ON in production. Any safety check done using assert will not be executed.

Checklist
Please check all that apply.

  • I've tested the changes locally
  • I've updated relevant comments
  • I've assigned reviewers for this PR
  • I've added unit tests that cover the changes

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @gantoine, 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 reliability of API endpoints by transitioning from assert statements to explicit HTTPException raises for cases where a device cannot be resolved. This change prevents unexpected behavior in production environments where Python's optimization flags might disable assert checks, ensuring that API consumers receive appropriate 404 Not Found responses instead of potential silent failures.

Highlights

  • Robust Error Handling: Replaced assert statements with explicit HTTPException raises in API endpoints to ensure proper error handling when a device is not found. This addresses the issue where assert calls are ignored in Python's optimized production mode, preventing silent failures and ensuring API consumers receive appropriate 404 Not Found responses.
Changelog
  • backend/endpoints/saves.py
    • Replaced assert device is not None with an if device is None: raise HTTPException(...) block in the confirm_download function.
    • Replaced assert device is not None with an if device is None: raise HTTPException(...) block in the track_save function.
    • Replaced assert device is not None with an if device is None: raise HTTPException(...) block in the untrack_save function.
Activity
  • Relevant comments were updated.
  • Reviewers were assigned for this pull request.
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.

Copy link
Copy Markdown
Contributor

@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 replaces assert statements with HTTPException for production-ready error handling. However, the new checks for a None device are redundant in all three modified endpoints (confirm_download, track_save, untrack_save). The helper function _resolve_device already handles the 'device not found' case by raising an exception when a device_id is provided, which it is in these functions. I've suggested removing the unnecessary code blocks.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 16, 2026

Test Results

801 tests   800 ✅  2m 7s ⏱️
  1 suites    1 💤
  1 files      0 ❌

Results for commit 6368afd.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 16, 2026

☂️ Python Coverage

current status: ✅

Overall Coverage

Lines Covered Coverage Threshold Status
13012 8514 65% 0% 🟢

New Files

No new covered files...

Modified Files

File Coverage Status
backend/endpoints/saves.py 76% 🟢
TOTAL 76% 🟢

updated for commit: 6368afd by action🐍

@gantoine gantoine merged commit de161f2 into master Feb 16, 2026
8 of 9 checks passed
@gantoine gantoine deleted the aikido-13126609 branch February 16, 2026 21:39
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