Fallenbagel / jellyseerr

Fork of overseerr for jellyfin support.
https://docs.jellyseerr.dev/
MIT License
3.43k stars 211 forks source link

Application Exception #878

Closed MegaShinySnivy closed 3 weeks ago

MegaShinySnivy commented 1 month ago

Description

On attempting to load Jellyseerr, I get an exception that prevents the webapp from loading.

TypeError: r.warnings is undefined
    NextJS 10
framework-6a24ea55bfe2d3c0.js:1:71888
    NextJS 11
TypeError: r.warnings is undefined
    NextJS 10
main-a0d77ee65511e9c3.js:1:7915
A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred main-a0d77ee65511e9c3.js:1:7932
TypeError: r.warnings is undefined
    NextJS 10
framework-6a24ea55bfe2d3c0.js:1:71888
TypeError: r.warnings is undefined
    NextJS 10
main-a0d77ee65511e9c3.js:1:7915
A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred main-a0d77ee65511e9c3.js:1:7932
    NextJS 13
MouseEvent.mozInputSource is deprecated. Use PointerEvent.pointerType instead. 17100-f53437216927e03c.js:1:21060

Version

1.9.2

Steps to Reproduce

Start v1.9.2 Attempt to access it

Screenshots

No response

Logs

No response

Platform

desktop

Device

Desktop on Firefox

Operating System

Linux

Browser

Firefox

Additional Context

No response

Code of Conduct

Fallenbagel commented 1 month ago

How did you setup jellyseerr?

What node version. What yarn version. Exact steps you took.

MegaShinySnivy commented 1 month ago

I'm using the official docker container on Kubernetes. Here's my helmfile.

https://github.com/MegaShinySnivy/Scaling-Snakes/blob/main/kubernetes/apps/default/jellyseerr/app/helmrelease.yaml

gauthier-th commented 1 month ago

Could this be related to #875?

MegaShinySnivy commented 1 month ago

Possibly... I notice when bypassing my reverse proxy, NGINX, it doesn't error. Is it possible there could be some sort of interference?

gauthier-th commented 1 month ago

The author of the PR I mentioned earlier was also using k8s with some kind of reverse proxy, so yes it may be linked. Could you test the preview-fix-users-warning tag to see if it fixes your issue?

MegaShinySnivy commented 1 month ago

Doing that gives me... Something else entirely! Skips the login screen (even in a private tab) and leads to an "Oops!" screen with an option to return home that does jack all.

Fallenbagel commented 1 month ago

Doing that gives me... Something else entirely! Skips the login screen (even in a private tab) and leads to an "Oops!" screen with an option to return home that does jack all.

You mentioned without reverse proxy it works. Then that sound like a configuration issue with reverse proxy. Are you using subdomain or subfolder?

Can you show me your nginx configuration?

MegaShinySnivy commented 1 month ago

Subdomain. Config information is at https://github.com/MegaShinySnivy/Scaling-Snakes/blob/main/kubernetes/apps/default/jellyseerr/app/helmrelease.yaml and https://github.com/MegaShinySnivy/Scaling-Snakes/blob/main/kubernetes/apps/networking/nginx/external/helmrelease.yaml

M0NsTeRRR commented 1 month ago

I use jellyseerr in a kubernetes environment without issues (traefik). Have you tried to disable some nginx settings you have to see which cause this issue ?

MegaShinySnivy commented 1 month ago

I'm not sure what I would disable, all of these are pretty standard

MegaShinySnivy commented 1 month ago

It was my custom error pages. What errors does jellyseerr rely on to function?

gauthier-th commented 3 weeks ago

How do your error pages work? Jellyseerr needs all the content of the responses that the API sends back to the front-end.

MegaShinySnivy commented 3 weeks ago

https://kubernetes.github.io/ingress-nginx/user-guide/custom-errors/ Check here, TLDR if the application behind NGINX returns an error, NGINX overwrites it and sends the user to its own custom error page instead.

gauthier-th commented 3 weeks ago

Jellyseerr does not send a full HTML page with some http code for each page. It's a PWA, meaning that all the content of the website (HTML, CSS, JS) is loaded at the first visit and then put in the browser cache. When you go to another page, it just load the necessary content from the API (like a JSON with the movies info) and the front-end website parse and display this content. If there is some error, the API will send back some content (in JSON) anyway, with details on the server-side error so the website can display this error. If you mess up with the content returned by the API when there is an error, the Jellyseerr app will probably not be able to parse the error details and crash. (it's normal behavior for the API to return error codes)

gauthier-th commented 3 weeks ago

I'm closing this because I don't think it's a Jellyseerr error.

stevewm commented 2 weeks ago

I hit this too, but it looks like nobody posted a solution.

For anyone else who ends up here you can fix this by annotating your jellyseerr ingress with nginx.ingress.kubernetes.io/custom-http-errors: "599". Credit to @MegaShinySnivy for the fix.