As administrator I can't delete a local profile
๐ก Summary
By using the user's moderation panel, doing profile deletion, does nothing.
๐ฅฐ Expected Behavior
I expected to delete everything from the local user
๐คฌ Actual Behavior
I can see visual โ but the deleted profile stills there.
๐ Steps to Reproduce
- open profile
- open moderation panel
- click: delete button
- confirm deletion
- see: OK check
- see: profile stills there
- open anonymous window, see profile is still there
๐ป Frontend Environment
* Model and OS of the device(s): android and windows
* Browser: firefox 124
* Server URL: https://misskey.social/@mcw77shop
* Misskey: 2024.3.1
๐ฐ Backend Environment (for server admin)
* Installation Method or Hosting Service: docker
* Misskey: 2024.3.1
Do you want to address this bug yourself?
- [ ] Yes, I will patch the bug myself and send a pull request
Any hint on how provide more logs of this? ๐ค
I tried creating a local account, confirming the email address. Then as administrator, I pushed delete button, then refreshed the moderation panel, it disappeared. The profile's email address got deletion email. But some accounts are likely "bugged" can't be removed. I also tried with a very old profile, also deleted as expected.
How do I can debug messy profiles? I can still read RAW data.
ใใฎไปถใจๅใๅๅ ใซใใใใฎใใฏใใใใพใใใใใฎใใใใผ https://misskey.noellabo.jp ใงใใฆใผใถใผๆฌไบบใใใณ็ฎก็่ ใซใใๅ้คใใงใใชใใขใซใฆใณใใ็บ็ใใฆใใพใใ
also in 2024.5.0
Still active in 2024.10.0. (not) Deleted profile's drive files are still there. Can be seen in control-panel drive admin.
How do I can send more debug info?
I suspect that the account could be not deleted due to the file deletion query timed out, as reported in #9975.
Once you perform account deletion, the target user's isDeleted is set to true, so simply retrying deletion doesn't make sense. Would you mind setting isDeleted to false for the target user directly from the database, and try again?
Hello @zyoshoka and thanks for your reply. I'm running dockerized environment and running sql queries is pretty difficult. Maybe can be done by APIs call?
Unfortunately, this is impossible with API calls for now. If you followed the installation guide when setup, I think it is possible for you to issue the SQL query directly according to the following steps instead:
- Set the working directory to the misskey repository root.
- Attach to the db container by running a following command. You need to pass
POSTGRES_USERwritten in your.config/docker.envto-uoption.
docker compose -u postgres exec db bash
- Then you can perform the query. Replace
misskeywith the database name described in your.config/default.yml, and9000000000000000with the target user's id.
psql misskey -c 'UPDATE "user" SET "isDeleted" = FALSE WHERE "id" = '"'9000000000000000'"';'
Thanks for hinting. I made it like this:
# docker compose exec -u postgres db bash this executed the db container.
4b7f5b:/$ psql misskey -U <DBUSER> -c 'UPDATE "user" SET "isDeleted" = FALSE WHERE "id" = '"'<userId>'"';'
Deletion went ok (again) and now I can't see related attachments inside Drive control panel. I gave a translated read at #9975 so I guess the meaning was the same bug.
In my opinion, when User deletion is asked by administrator, or user himself, should start a job. First of all, in user moderation panel, put a warning "asked for deletion", with a percentage bar of remaining jobs to do. Then:
- collect all the notes
- collect related items
- batch delete everything collected
- in the end, set the profile as deleted.
Every step should be a small batch to avoid server collapse.