Discuss Scratch

8to16
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

mrsrec wrote:

(#23)

8to16 wrote:

Bump
Are you still having this issue? I reported it to be un-stickied because it didn't seem to be happening anymore. Is it still happening?
someone reported they still had this bug

Last edited by 8to16 (Nov. 26, 2024 17:03:50)

mrsrec
Scratcher
500+ posts

Issues with reports not working, and how to fix them

8to16 wrote:

mrsrec wrote:

(#23)

8to16 wrote:

Bump
Are you still having this issue? I reported it to be un-stickied because it didn't seem to be happening anymore. Is it still happening?
someone reported they still had this bug
Well, who reported this, and where? It's a good idea to post details as it can in some cases help fix them, even though in some cases it's just “random”.
go90takes
Scratcher
14 posts

Issues with reports not working, and how to fix them

Reporting comments seems to work fine, but I'm still having issues when reporting projects!
Something interesting I've noticed is that the issues are not entirely random, at least for me.

Here are my findings:
  • After reporting one or two projects successfully, reporting another project makes the “Send” button say “Sending…” forever
  • The only way to retry the report is to refresh the page. “Sending…” will still be there if I re-open the report box

  • Yes, I cleared my cookies and restarted my browser
  • This occurs no matter the category or reason for reporting
  • This occurs when logged into any account, whether or not it has the Scratcher rank
  • I have not tried using other browsers or devices yet

  • Logging into another account is a temporary fix, but reporting one or two projects breaks it again
  • After an unknown amount of time (possibly a day), the issue goes away until I start reporting projects again

Usually, upon sending a successful report, a JSON string is sent back. This can take up to a few seconds.
However, when a report fails, the response is empty, and it usually gets sent back within less than a second.

It seems like the report box's JS doesn't know how to handle this, therefore it crashes and leaves “Sending…” on-screen forever.
I assume this is the case because an unsuccessful report causes these errors to appear in the browser console:
Uncaught InvalidStateError: Failed to read the 'responseText' property from 'XMLHttpRequest': The value is only accessible if the object's 'responseType' is '' or 'text' (was 'json').
at XMLHttpRequest.o (common.bundle.js:2:353174)
Uncaught InvalidStateError: Failed to read the 'responseText' property from 'XMLHttpRequest': The value is only accessible if the object's 'responseType' is '' or 'text' (was 'json').
at r (common.bundle.js:2:352626)
at o (common.bundle.js:2:353174)
See @A-MARIO-PLAYER's error as well.

(All of the reports I made are legitimate. My browser / operating system: Windows NT 10.0, Chrome 131.0.0.0, No Flash version detected)

Ooops, wrong account. Lol

Last edited by go90takes (Nov. 30, 2024 04:02:42)

Voxalice
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

Bump, because I'm still being affected by issues with reporting. Read the post above for more info.
BigNate469
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

Voxalice wrote:

Bump, because I'm still being affected by issues with reporting. Read the post above for more info.
Same- I had to report a project today, but got the same issue.
EDawg2011
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

A-MARIO-PLAYER wrote:

#13
Uncaught DOMException: XMLHttpRequest.responseText getter: responseText is only available if responseType is '' or 'text'.
r https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
o https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
setTimeout handler*69005/u/c.onreadystatechange https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
u https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
l https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
n https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
exports https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
use https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
get https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
use https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
exports https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
reportProject https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
r https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
reportProject https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
t https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
handleReportSubmit https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
getProjectThumbnail https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
draw https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
draw https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
getProjectThumbnail https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
t https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
handleReportSubmit https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
t https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
handleSubmit https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
t https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
submit https://scratch-mit-edu.ezproxyberklee.flo.org/js/projects.bundle.js:2
s https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
h https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
_ https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
_ https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
st https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
at https://scratch-mit-edu.ezproxyberklee.flo.org/js/common.bundle.js:2
common.bundle.js:2
Note that this was a legitimate report for tagspamming so false reporting isn't much of an issue here.
Can you please translate that code into something non-tach-savvy people can easily read?

Last edited by EDawg2011 (Dec. 7, 2024 02:58:13)

EDawg2011
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

BigNate469 wrote:

Voxalice wrote:

Bump, because I'm still being affected by issues with reporting. Read the post above for more info.
Same- I had to report a project today, but got the same issue.
If this is now a widespread issue, it could be a big threat to Scratch's safety if the glitch gets worse, and even if it isn't widespread, not being able to report an inappropriate project does the opposite of helping make Scratch safe. I feel like this should be a high priority for the Scratch Team rn, if this glitch is widespread now.
Voxalice
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

Bringing this topic up to the first page of Bugs and Glitches because my post is still relevant.
I forgot to mention this earlier, but yes, the bug from my post still occurs when I disable that one browser extension.
After reporting more projects, it seems like the limit (for me) is two projects per account per ~24 hours.

Also, I tried to find the exact source of the following InvalidStateError, and I think I found something very important.
Uncaught InvalidStateError: Failed to read the 'responseText' property from 'XMLHttpRequest': The value is only accessible if the object's 'responseType' is '' or 'text' (was 'json').
I noticed in scratch-www's “/lib/api.js” that “responseType” is set to “json” by default.
Apparently, when “responseType” is “json”, “responseText” is not included in the XHR's response object - only “response” is.

Maybe when the code in “api.js” is called, “responseType” should be “text” instead, that way trying to access “responseText” doesn't immediately throw an error?
(The code in “api.js” is called here when reporting projects.)
Although, it may be necessary to avoid accessing “responseText” in the first place, which I'm pretty sure would require modifying one of scratch-www's dependencies.

Also, all this is just to avoid the client-side error that leads to the report modal halting.
It does nothing to solve the server-side error of reports giving empty responses, and only the Scratch Team can truly know what's going on there.

(Sorry for all the technical jargon. Lol)


EDawg2011 wrote:

(#27)
If this is now a widespread issue, it could be a big threat to Scratch's safety if the glitch gets worse, and even if it isn't widespread, not being able to report an inappropriate project does the opposite of helping make Scratch safe. I feel like this should be a high priority for the Scratch Team rn, if this glitch is widespread now.
Agreed.
Here's some questions to continue the discussion:
  • Has anyone else experienced this issue recently?
  • Does this error occur in non-Chrome browsers (like Edge), and non-Chromium browsers (like Firefox)?
  • Does this happen on non-Windows operating systems?
  • Is there anything I missed in my original post?
  • Is there anything I missed while searching for the source of the InvalidStateError?
  • Do these “failed” reports actually send anything to the Scratch Team?
  • Does this topic need to be stickied again? (If so, I hope the info about switching accounts is added to the OP.)
(Don't worry about answering every question at once.)

Last edited by Voxalice (Dec. 9, 2024 02:09:57)

mrsrec
Scratcher
500+ posts

Issues with reports not working, and how to fix them

It seems like the issues with reporting projects and with reporting comments are two different issues then– there's one issue of reports “silent-failing”, and another issue of something very loudly failing but the Scratch site not checking if it failed or not. Maybe two different topics are a good idea.

Also, I don't think the JavaScript makes a difference here– the issue isn't the way your computer reacts to the error, it's the error itself. However, I suspect it is probably some sort of anti-abuse mechanism, if it only happens when you report multiple projects in a short time period. It'd be nice if it only didn't count towards a project's removal, rather than tossing out the reports entirely– what if they are legitimate reports? I have had to report a lot of things via Contact Us because of it.

But the comments issue seems to be different– it just says that a comment was successfully reported, even if the report endpoint comes back as a 503 (Whoops! Looks like we're having issues with our servers) and actually wasn't reported.
BigNate469
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

Voxalice wrote:

-snip-
  • Does this happen on non-Windows operating systems?
Yes.
My browser / operating system: ChromeOS 14541.0.0, Chrome 130.0.0.0, No Flash version detected

Voxalice wrote:

  • Do these “failed” reports actually send anything to the Scratch Team?
Maybe? The issue seems to basically be a malformed response type, but I would assume that the server still received the report- after all, it had to receive the request to send any response.

Next time I'm on my iPad (on Safari- and besides, due to Apple's policy, any browser on the App Store must use WebKit anyways) I'll see if I can find a project I can report and see if it works.
mrsrec
Scratcher
500+ posts

Issues with reports not working, and how to fix them

Do these “failed” reports actually send anything to the Scratch Team?

Probably not. It appears to be a response coming back from Fastly, not from Scratch. There's a reason why the response is so much faster.

Maybe? The issue seems to basically be a malformed response type, but I would assume that the server still received the report- after all, it had to receive the request to send any response.

*Fastly* had to receive the request, but there is no guarantee that Scratch ever received it. That's how reverse proxies work.

Ultimately you can never be 100% sure unless an engineer confirms it, but it is likely the case that Fastly is returning that response without forwarding the request to Scratch– this would explain both why the response is so much faster and why it doesn't contain a response body at all, and just a status code.
ZooWeeMinecraft
Scratcher
85 posts

Issues with reports not working, and how to fix them

  • Does this error occur in non-Chrome browsers (like Edge), and non-Chromium browsers (like Firefox)?

Actually yes, the error can occur in Edge and Firefox as well.
MagicCoder330
Scratcher
1000+ posts

Issues with reports not working, and how to fix them

Bumping, I encountered the bug again.
CoderMCProX
Scratcher
500+ posts

Issues with reports not working, and how to fix them

relevant, should be stickied again!
CoderMCProX
Scratcher
500+ posts

Issues with reports not working, and how to fix them

I got this to be a sticky!
xXGlitchFlameXx
Scratcher
100+ posts

Issues with reports not working, and how to fix them

Is this happening to everyone? I don't think I've experienced this yet.
xXGlitchFlameXx
Scratcher
100+ posts

Issues with reports not working, and how to fix them

ok
NixonTopa1972
Scratcher
100+ posts

Issues with reports not working, and how to fix them

mrscrec wrote:

Sometimes, reporting a project can just continuously fail no matter how many times you try. If it doesn't work even after multiple attempts, you can always report it via the Contact Us
We use the contact us if we find any hard situation.

Last edited by NixonTopa1972 (Feb. 20, 2025 09:21:20)

xXGlitchFlameXx
Scratcher
100+ posts

Issues with reports not working, and how to fix them

NixonTopa1972 wrote:

mrscrec wrote:

Sometimes, reporting a project can just continuously fail no matter how many times you try. If it doesn't work even after multiple attempts, you can always report it via the Contact Us
We use the contact us if we find any hard situation.
That's good to know, but I mostly just fix the problem by going on my alternate account and reporting from there.

Powered by DjangoBB