ricochhet/Erupe-Legacy

Error when I try to join a server

Opened this issue · 10 comments

error
This error just started appearing when I try to join a server. I was able to play just fine before. I don't know why this is happening. Please help!

Do you see anything in your server-logs maybe?

unfortunately i can't check anymore. I tried to delete and reinstall erupe in pgadmin4 and my save was deleted. If it happens again
I will comment.

Were you able to play normally after that? I ran into the same error just recently, I'm thinking about how I could back up my save data and do what you did to try and work something out

Were you able to play normally after that? I ran into the same error just recently, I'm thinking about how I could back up my save data and do what you did to try and work something out

Yes but not with the previous save data as it was deleted but after redoing the server installation i was able to play.
Also if you start a new save the character is allowed into the server.

Jumping onto this issue, my friend has managed to reproduce this error after logging out for the night. This is the second time this has happened, and I have save files and access to logs if they are needed. The server log from loading the Erupe Launcher to the crash given by OP is as follows (IPs redacted):

111.222.333.444 - - [06/Mar/2022:22:22:48 +0000] "GET /serverlist.xml HTTP/1.0" 200 113
2022-03-06T22:22:58.902Z        INFO    main.sign       signserver/sign_server.go:93    Got connection to sign server       {"remoteaddr": "111.222.333.444:53931"}
2022-03-06T22:22:58.984Z        INFO    main.sign       signserver/session.go:81        Got sign in request {"reqUsername": "Yuko141", "reqPassword": "1234", "reqUnk": ""}
2022-03-06T22:22:59.072Z        INFO    main.sign       signserver/session.go:132       Passwords match!
2022-03-06T22:23:32.932Z        DEBUG   main.entrance   entranceserver/entrance_server.go:112   Got entrance server command:
        {"raw": "00000000  41 4c 4c 2b 00                                    |ALL+.|\n"}
2022-03-06T22:23:35.929Z        INFO    main.channel.111.222.333.444:53952      channelserver/session.go:61 Channel server got connection!  {"remoteaddr": "111.222.333.444:53952"}
CharID: '0'
Opcode: MSG_SYS_LOGIN
Data:
00000000  00 14 01 ff 00 01 00 00  00 04 ff ff ff ff 00 00  |................|
00000010  00 0b 00 00 00 04 00 00  00 11 6c 6f 67 69 6e 74  |..........logint|
00000020  6f 6b 65 6e 73 74 72 6e  67 00 00 00 10           |okenstrng....|

CharID: '4'
Opcode: MSG_MHF_LOADDATA
Data:
00000000  00 61 01 ff 00 02 00 10                           |.a......|

2022-03-06T22:23:36.470Z        INFO    main.channel.111.222.333.444:53952      channelserver/session.go:139        Character(4) disconnected

@leaderofthem7 Out of curiosity, what was the last thing you did before this started occurring? From our two experiences so far, it seems to be an issue with the urgent quest to move from HR 3 to 4

The last thing I was doing i think was a hr5 gou rank quest. Inagami I think.

In that case, it may have just been a coincidence that both of the occurrences on my end were around that spot. When I get home, I'm gonna be looking into the postgresql database for anything funky - since rolling our savedata folder back to a copy taken prior to the issue occurring did not resolve it for us.

As an update to the above issue - it is fixable with a little bit of messing around inside the tables. The character's save data was kept in the postgresql database, and after a little bit of digging it's possible to write back a known good copy of the data back into the database.

Following on from this reddit thread, you can do the following steps (on Linux) to essentially roll back the save and log yourself back in:

  1. Go to the Erupe server directory and enter the savedata folder (you may need sudo privileges)
  2. Scroll to the bottom and identify the latest file that belongs to your character (using strings on the file will produce a result like this: cmp 20110113 tolly765 3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3` Halk)
  3. Keep a note of the file name and path for the located file somewhere - it will be needed in a later step
  4. Open up the postgresql command line (sudo -u postgres psql) and change to the Erupe database if needed
  5. Run the following command and find the ID of the user you are trying to restore: select user_id,name from public.characters;
  6. Use the following command to overwrite the information stored on your character:
    UPDATE characters SET savedata=pg_read_binary_file('/path/to/savedata/numbers.bin') WHERE ID = X; -- Replace X with the ID and make sure to change the path
  7. Start Erupe as normal and log back in with the account - with any luck, you should be able to log back in.

For windows instructions, follow the reddit link above.

Unfortunately, this is not a way to triage broken player data. It is possible to pull out the corrupted data using postgresql if it happens to someone else, so that may be worth exploring if this happens again.

I have ran into this very issue out of nowhere, managed to kind of fix it by following the reddit instructions on the reddit thread
I had multiple characters, one being for myself, and another for my boyfriend to play as (we have a server setup for just the two of us)
The issue only popped up on my own character, however after fixing said issue, a new issue popped up
Now his character is a clone of my own character and I can't seem to figure out how to restore his original character, I still have the files for said character but haven't been able to figure out how to get it to load them instead of my own
(Another quirk is that whenever he logs in, it creates new files under my characters folder, but with the character number ID of his original character)
Apologies if this is worded poorly, I'm tired