this post was submitted on 04 Jul 2023
394 points (97.8% liked)
Programmer Humor
32567 readers
408 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Serious Answer: This is a Jerboa issue. Lemmy is written in Rust. The error message is a Java error which is what native Android apps use.
I think it's both, actually. Lemmy is often giving html where json is expected, and Jerboa isn't handling the error well.
🤔 The server spits out html when it cannot reach the backend. So one could argue it's a configuration issue because the admin didn't provide enough capacity / didn't set up a proper generic json error for backend failures.
FWIW, Liftoff doesn't handle these super gracefully either.
At any rate I think it's kinda awesome that we get to witness these kinds of infancy problems.
Well, what should Jerboa do? Pretend it received content?
It should display a human-readable error message instead of the raw one.
Take it as an error, tell the user about it and then retry with exponential back-off.
No, it's probably when the app is expecting a json but the server returns an html, which usually happens in case of 502 errors.
You really shouldn't be expecting any content type when you get any code but a 200. If anything you should expect HTML, then, possibly plain text.
If it's Jerboa/Android app issue, why do I get JSON errors using Lemmy on my desktop PC with Firefox? Forgive me if this is a dumb question, I have very little programming knowledge.
No, this is a lemmy issue. The API specification specifies a JSON response, and the server randomly provides HTML, this is a bug in the server. I agree that Jebora should retry in the case of a network failure (timeout, 4xx staus codes...) but it should not have to retry in a case of a server that is not folowing the standard.
lemmy does not return 502 error codes because 502 means "bad gateway" and lemmy is not acting as a gateway, nginx is. An nginx sends the html. All apps should check the status code for codes like this one that don't come from apps.