Skip to content

Handle parse errors gracefully on timeline items #5196

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
May 18, 2025

Conversation

syeopite
Copy link
Member

@syeopite syeopite commented Mar 1, 2025

This PR makes it so that if one item in the timeline fails to parse, the rest of the page will still be usable and the failed item will instead be represented with an error card.

This is done creating a new SearchItem known as a ProblematicTimelineItem which represents an item that has failed to parse. The frontend and API will render this as a single error card while the rest of the page renders normally.

graceful errors

@syeopite syeopite requested review from SamantazFox and a team as code owners March 1, 2025 04:54
@syeopite syeopite force-pushed the graceful-parse-errors branch 2 times, most recently from cd7ae72 to c66a28e Compare March 6, 2025 02:38
syeopite added 10 commits March 19, 2025 22:52
Prior to this commit, if even a single item fails to parse Invidious
will throw out an error. This means that even if everything else
on a page can be parsed and rendered without issues, the single
problematic item will cause the entire page to be unusable.

This commit gracefully handles parse errors by catching and then
replacing the problematic item with a new "timeline error" object
that represents the parse error. This will allow the rest of the page
to be rendered and an error card that will replace the location of the
problematic item.
The CSS for the search filters details box was applied to every
detail element when search.css is loaded
Also makes it show the error backtrace
@syeopite syeopite force-pushed the graceful-parse-errors branch from c66a28e to 7b27585 Compare March 20, 2025 06:52
Remove explicit `self.` from #process of parsers

Remove explicit return tuple in get_issue_template

Fix formatting

Move inline issue template style to stylesheet

Use @id in ProblematicTimelineItem xml repr

Fix naming
@syeopite syeopite added the need-testing This feature needs to be deployed and tested to see if it's working, and doesn't break something label Apr 14, 2025
@Fijxu
Copy link
Member

Fijxu commented May 4, 2025

Works fine. I'll push it into my instance:

image

@syeopite syeopite added in-testing This feature has been deployed and is being tested and removed need-testing This feature needs to be deployed and tested to see if it's working, and doesn't break something labels May 4, 2025
@syeopite syeopite added ready and removed in-testing This feature has been deployed and is being tested labels May 16, 2025
R0gu3h3h3h3 pushed a commit to R0gu3h3h3h3/oiia that referenced this pull request May 16, 2025
@syeopite syeopite merged commit d5cb653 into iv-org:master May 18, 2025
8 checks passed
@syeopite syeopite deleted the graceful-parse-errors branch May 18, 2025 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants