Atmosphere-NX / Atmosphere

Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.
GNU General Public License v2.0
15.06k stars 1.24k forks source link

atmosphere creating thousands of files in erpt_reports even when no crashes are happening #1987

Closed NekoNoor closed 1 year ago

NekoNoor commented 2 years ago

What's the issue you encountered?

when booted into atmosphere a lot of files are created in the erpt_reports folder even when i am not doing anything

How can the issue be reproduced?

launch atmosphere and wait for a couple minutes and check the sd card erpt_reports folder, there will be a lot of files causing it to hit the FAT limit of 16383 files in that folder and making the switch completely unusable (games load noticably slow and homebrew works extremely badly)

Crash Report

N/A

System Firmware Version

15.0.1

Environment?

Additional context?

N/A

Masamune3210 commented 2 years ago

Post a couple of the reports, we can't know what is going on if we don't have examples

NekoNoor commented 2 years ago

erpt_reports.zip

Masamune3210 commented 2 years ago

Do you have a account linked to a Ninty ID by chance?

NekoNoor commented 2 years ago

yes my main account is linked to a nintendo ID

Masamune3210 commented 2 years ago

The error code that appears in the logs, 2234-4508, is account has been banned from using online services

NekoNoor commented 2 years ago

i unlinked the account from nintendo and it seems to have fixed it, not sure why it would generate an error every few seconds if it's banned though, i've had my account linked since 2018 and i never had an issue with it generating error reports

NekoNoor commented 2 years ago

some game require having an nnid linked, how would i play those if i cant have one linked (becouse it would fill the sd card with errors)

Masamune3210 commented 2 years ago

No clue, never had to deal with it myself so I'm not entirely sure of how a banned switch normally behaves

Masamune3210 commented 2 years ago

Might leave this open so someone can look more into it just in case atmosphere is behaving incorrectly

masagrator commented 2 years ago

First of all erpt is not a sign of crash. Crash generates crash report, not error report.

Masamune3210 commented 2 years ago

Yeah it's not crashing, but it's definitely not happy either

NekoNoor commented 2 years ago

After I unlinked my account it's no longer making all those error files, but now I can't play certain games that require a linked account.

My switch has been banned since 2018 so I'm not sure what changed that it started making all those errors. If I link my account using Linkalho the same thing happens as when it was linked to a real account like it has been since I got my switch.

loganm911 commented 2 years ago

ive been having this happen as well, also linked with linkalho. although for me it started right as the system started to nag about an available update. so it also happened on 15.0.0.

Ammako commented 2 years ago

I assume you're connected to the internet? If you disconnect/enable airplane mode, does it still create all those files?

NekoNoor commented 2 years ago

It doesn't seem like it, I left it for a while and hasn't made any new files.

Ammako commented 2 years ago

If you need internet connectivity for something, I'd suggest enabling prodinfo blanking with exosphere.ini (or cal0blank=1 in hekate_ipl.ini if booting with hekate using package3)

Then you can be online for homebrew stuff or lan play, but since prodinfo is blanked, it can't connect to Nintendo, which will hopefully prevent it from generating errors like this.

NekoNoor commented 2 years ago

I enabled prodinfo blanking (again) and it still makes the files, the only way to stop it is to unlink the accounts. But I had it linked for several years while being banned and never encountered this

Masamune3210 commented 2 years ago

are you sure its enabled? exosphere's config is the weird one, it goes on the root of the drive instead of the config folder

Masamune3210 commented 2 years ago

Check in Settings if your Serial Number for the console is different, that's the easiest way to see if its working or not

NekoNoor commented 2 years ago

are you sure its enabled? exosphere's config is the weird one, it goes on the root of the drive instead of the config folder

I checked and it shows the serial number as all zeroes

Masamune3210 commented 2 years ago

Can you upload a log from after you enabled blanking? Make sure its one of the new ones, easiest way would be to clear out the folder and then grab one

Ammako commented 2 years ago

With prodinfo blanking a new error report gets generated every few seconds; this time it's for 2123-0011 which I guess is to be expected.

NekoNoor commented 2 years ago

erpt_reports.zip

Masamune3210 commented 2 years ago

2123-0011 is Ninty servers refusing the connection because your switch cant prove its a legitimate console due to the blocked PRODINFO. Something is causing the system to repeatedly try to connect to Nintendo's servers. Maybe latest update changed the behavior of something like cloud saves?

@NekoNoor Error code is now 2155-8007 which is interesting, most of what I can find is saying that its relating to a secondary console trying to contact Nintendo to verify account details and licenses

Masamune3210 commented 2 years ago

Does putting the console into Airplane Mode stop the error spam?

NekoNoor commented 2 years ago

Does putting the console into Airplane Mode stop the error spam?

Yes

Masamune3210 commented 2 years ago

Did you happen to have another console set as primary?

NekoNoor commented 2 years ago

Did you happen to have another console set as primary?

Nope

Masamune3210 commented 2 years ago

Well, unless one of the actual devs wants to jump in, I am out of ideas other than taking a nand backup and then resetting your switch so it no longer has the legit account connected. Since the account is banned, you wouldnt be losing much from not having it connected anyway

Ammako commented 2 years ago

I'm on 14.1.2, so it's not necessarily a 15.x thing.

I'm pretty sure it's normal for it to be repeatedly trying to connect in the background though, because when you're online and have a Nintendo account linked, it needs to be able to know, when account information has changed and such. If anything, the error repeating itself thousands of times per minute when the console already knows that it's banned and that it can't make a connection is bad behavior from Nintendo's end, but retrying every few seconds when that initial connection fails makes sense.

(Also, they don't have a legit account linked anymore; linkalho manually "links" a dummy Nintendo account to the profile, just to allow games to run who need a Nintendo account linked.)

hexkyz commented 1 year ago

This issue is not related to Atmosphère, but rather to how Nintendo's servers work. A large number of error reports being generated is expected behavior since the console is indeed spamming a ton of errors when connecting.

NekoNoor commented 1 year ago

The problem isn't the errors itself but rather the files the errors create, which is a feature of atmosphere which you can't turn off, something like a toggle for saving erpt errors to sd would make it at least usable again like how it used to be.

Did Nintendo change this on their end? Because I didn't used to get this

hexkyz commented 1 year ago

There was a recent(-ish) change in server checks yes. Some thought will be needed to decide on adding a setting for this. In the meantime, it should be possible to set the "erpt_reports" folder to read-only to prevent a crash from happening.

Ammako commented 1 year ago

Is filtering reports by error code something that could be done? I'm not sure if the option to disable error reports as a whole would be the best solution, because it would prevent users from getting potentially useful error report files for troubleshooting if they ever get other errors in the future. If it could just ignore 2124-4007 and 2124-4508 instead, that would prevent this problem without hindering anything else.

DraconicNEO commented 1 year ago

There was a recent(-ish) change in server checks yes. Some thought will be needed to decide on adding a setting for this. In the meantime, it should be possible to set the "erpt_reports" folder to read-only to prevent a crash from happening.

Sorry about the late Reply but I'm having the same issue and I want to ask How do I write protect the erpt folder, I tried in windows and linux and neither did anything (still get tons of reports in the folder) SD card is formatted as FAT32 if that helps.

zexu-xu commented 1 year ago

Delete erpt_reports folder and create an empty file named as erpt_reports should do the trick.

rgardner168 commented 1 year ago

Delete erpt_reports folder and create an empty file named as erpt_reports should do the trick.

doing this does fix the slow issues. however, it breaks other atmosphere features like DNS blocking on nintendo servers. if you do this and then try to connect to a nintendo server (e.g. try to 'update a game' or check for updates) atmosphere crashes.

SciresM commented 1 year ago

deleting that folder will definitely not cause atmosphere crashes. it'll be something else in your setup.

rgardner168 commented 1 year ago

sorry should have been more specific on the error / crash. i think it is the creating of the 'empty' file named 'erpt_reports' that was suggested. simply deleting the folder but not creating a file named 'erpt_reports' seems to just recreate the folder once the switch is booted into atmosphere and the endless errors from the ban start back up and slow the system until it eventually crashes...

rursache commented 1 year ago

this issue must be addressed. every 2 seconds or so another "log" file is written to the erpt_reports folder. not only its wasted performance but it also kills the sd card. also if i keep the switch on for a few hours, i'll be unable too boot (after a reboot or shutdown) back in atmosphere until i manually delete that cursed folder. how is this acceptable in any way or form?

Masamune3210 commented 1 year ago

Wow, its almost....like its not intended behavior or something...

rursache commented 1 year ago

Wow, its almost....like its not intended behavior or something...

why would preventing boot be a "intended behavior"? 'cos i sure can't boot once that folder gets filled constantly within the hours... i found kefir OS, a change to the default atmosphere with logs disabled. guess what. the folder now says empty and i can actually reboot my console without having to constantly get the sd card out to clean the folder.

netux79 commented 1 year ago

Please fix this issue. I have removed the folder this afternoon. By one hour later I had more than 16k files just to report error 2155-8007... I think this have no sense. Add a config where we can disable logging completely. And if having issues we can enable it again and get the error. Then we can send it to you for review. Thanks!

liamwhite commented 1 year ago

The fact that a continuous stream of error reports is generated means something is going wrong on your device. That could be due to many factors. Many are potentially caused by custom sysmodules, which you should remove and retest without (rename atmosphere/contents to atmosphere/contents.old) to ensure they are not the issue. Atmosphere is just the messenger.

DraconicNEO commented 1 year ago

The fact that a continuous stream of error reports is generated means something is going wrong on your device. That could be due to many factors. Many are potentially caused by custom sysmodules, which you should remove and retest without (rename atmosphere/contents to atmosphere/contents.old) to ensure they are not the issue. Atmosphere is just the messenger.

Error 2155-8007 is caused by blocking Nintendo servers, we already know why the errors are being caused the problem is that a constant stream of errors is occurring and being saved to the SD card, eventually causing them to pile up to the point of crashing the driver and Horizon as a whole. That's why people want a way to turn off error reporting the errors aren't going to stop because they're being caused by the deliberate action of blocking Nintendo servers. As pointed out in this very discussion:

There was a recent(-ish) change in server checks yes. Some thought will be needed to decide on adding a setting for this. In the meantime, it should be possible to set the "erpt_reports" folder to read-only to prevent a crash from happening.

@hexkyz Out of curiosity is a fix for this to disable erpt reports still being considered by the way?

ehx-v1 commented 1 year ago

Honestly, I don't think there's a way to fix it short of setting up a whole server infrastructure that replaces Nintendo's servers entirely (similar to Wiimmfi) and DNS rerouting all of the Switch's server requests to that. Which we'll probably all agree isn't something we can reasonably expect to be done within a few weeks. Even if the community felt comfortable setting up custom servers, it would take years of work.

DraconicNEO commented 1 year ago

Honestly, I don't think there's a way to fix it short of setting up a whole server infrastructure that replaces Nintendo's servers entirely (similar to Wiimmfi) and DNS rerouting all of the Switch's server requests to that. Which we'll probably all agree isn't something we can reasonably expect to be done within a few weeks. Even if the community felt comfortable setting up custom servers, it would take years of work.

There's a simpler solution, allow people to disable erpt report logging entirely. See you're focusing too much on what the erpt reporting software is reporting but that's not actually the problem that's being caused here. The real problem is that Games and Software spam Nintendo servers when they can't connect and Atmosphere writes the error logs to the SD card eventually hitting the file limit and crashing Horizon, not to mention slowly killing the SD card due to write cycles.

I would love to have custom servers on the Switch as much as anyone but not be forced to use them as a band-aid fix for a problem which atmosphere created in the first place by forcing users to save logs even if they don't care about them. The solution to this problem is to allow users to opt out of erpt logging and just send them to /dev/null or the horizon OS equivalent.

Masamune3210 commented 1 year ago

They are focusing on the error because that is the correct thing to focus on lol. Erpts are written to the SD card for a reason, they are useful to fix errors. Disabling them entirely just because of one type of error is imo kind of overboard.

DraconicNEO commented 1 year ago

They are focusing on the error because that is the correct thing to focus on lol. Erpts are written to the SD card for a reason, they are useful to fix errors. Disabling them entirely just because of one type of error is imo kind of overboard.

I didn't say remove them from Atmosphere I said let the user disable them via config. If a user has no intention of reporting errors to GitHub or is using atmosphere in a way that is unsupported this feature is useless to them and only causes unnecessary wear and tear on their SD card.

Ammako commented 1 year ago

It would make more sense to have a mechanism to mute/suppress repeat errors instead of disabling error reports entirely