### Your setup
From source
### Extra details
Ubuntu 22.04.2 LTS
### Version
3.9.3-28-g9d7c877d (stable)
### PostgreSQL version
14
### What were you trying to do?
I am not 100% sure if this is an issue with admin-fe or with the backend, but it looks to be a backend-thing, so I decided to post on this repo.
The issue started a few weeks ago and backend-updates as well as reinstalling admin-fe did not help. If I remember correctly approval used to work correctly. Then I changed some settings in admin-fe namely I populated "Welome messages" under Settings -> Instance -> Welcome -> Direct Messages/E-Mail and then approval stopped working. I don't know in which way this related but I thought I might mention it anyway just to give a full picture. Here is the actual Problem discription:
I registered a new User. Email for confirming E-Mail Adress went fine. Confirming E-Mail worked. Using admin-FE I tried to approve a User and it failed. The User was not approved and the account cannot log in.
### What did you expect to happen?
The User gets approved properly and can login normally.
### What actually happened?
The approval fails and the newly registered User cannot login. Error states the account needs to be approved prior to logging in.
### Logs
```shell
Mai 31 08:51:04 dungeon-homeserver mix[17427]: 08:51:04.057 request_id=F2QuS1Ekm-Nk31QAAfMi [error] Internal server error: %Protocol.UndefinedError{protocol: String.Chars, value: %Pleroma.User{__meta__: #Ecto.Schema.Metadata, id: "AWD0nIXjqhvRedcSno", bio: "", raw_bio: nil, email: "", name: "Test", nickname: "Test18", password_hash: "", password: nil, password_confirmation: nil, keys: "", public_key: nil, ap_id: "https://ak.lightnovel-dungeon.de/users/Test18", avatar: %{}, local: true, follower_address: "https://ak.lightnovel-dungeon.de/users/Test18/followers", following_address: "https://ak.lightnovel-dungeon.de/users/Test18/following", featured_address: "https://ak.lightnovel-dungeon.de/users/Test18/collections/featured", search_rank: nil, search_type: nil, tags: [], last_refreshed_at: nil, last_digest_emailed_at: ~N[2023-05-31 08:50:10], banner: %{}, background: %{}, note_count: 0, follower_count: 0, following_count: 0, is_locked: false, is_confirmed: true, password_reset_pending: false, is_approved: true, registration_reason: "Ein TEstaccount", confirmation_token: nil, default_scope: "public", domain_blocks: [], is_active: true, no_rich_text: false, ap_enabled: false, is_moderator: false, is_admin: false, show_role: true, mastofe_settings: nil, uri: nil, hide_followers_count: false, hide_follows_count: false, hide_followers: false, hide_follows: false, ...}, description: ""}
Mai 31 08:51:04 dungeon-homeserver mix[17427]: 08:51:04.071 [error] #PID running Pleroma.Web.Endpoint (connection #PID, stream id 1) terminated
Mai 31 08:51:04 dungeon-homeserver mix[17427]: Server: ak.lightnovel-dungeon.de:80 (http)
Mai 31 08:51:04 dungeon-homeserver mix[17427]: Request: PATCH /api/v1/pleroma/admin/users/approve
Mai 31 08:51:04 dungeon-homeserver mix[17427]: ** (exit) an exception was raised:
Mai 31 08:51:04 dungeon-homeserver mix[17427]: ** (Protocol.UndefinedError) protocol String.Chars not implemented for %Pleroma.User{__meta__: #Ecto.Schema.Metadata, id: "AWD0nIXjqhvRedcSno", bio: "", raw_bio: nil, email: "test8@lightnovel-dungeon.de", name: "Test", nickname: "Test18", password_hash: "", password: nil, password_confirmation: nil, keys: "", public_key: nil, ap_id: "https://ak.lightnovel-dungeon.de/users/Test18", avatar: %{}, local: true, follower_address: "https://ak.lightnovel-dungeon.de/users/Test18/followers", following_address: "https://ak.lightnovel-dungeon.de/users/Test18/following", featured_address: "https://ak.lightnovel-dungeon.de/users/Test18/collections/featured", search_rank: nil, search_type: nil, tags: [], last_refreshed_at: nil, last_digest_emailed_at: ~N[2023-05-31 08:50:10], banner: %{}, background: %{}, note_count: 0, follower_count: 0, following_count: 0, is_locked: false, is_confirmed: true, password_reset_pending: false, is_approved: true, registration_reason: "Ein TEstaccount", confirmation_token: nil, default_scope: "public", domain_blocks: [], is_active: true, no_rich_text: false, ap_enabled: false, is_moderator: false, is_admin: false, show_role: true, mastofe_settings: nil, uri: nil, hide_followers_count: false, hide_follows_count: false, hide_followers: false, hide_follows: false, hide_favorites: true, email_notifications: %{...}, ...} of type Pleroma.User (a struct). This protocol is implemented for the following type(s): Atom, BitString, Date, DateTime, Decimal, Float, Floki.Selector, Floki.Selector.AttributeSelector, Floki.Selector.Combinator, Floki.Selector.Functional, Floki.Selector.PseudoClass, Hex.Solver.Assignment, Hex.Solver.Constraints.Empty, Hex.Solver.Constraints.Range, Hex.Solver.Constraints.Union, Hex.Solver.Incompatibility, Hex.Solver.PackageRange, Hex.Solver.Term, Integer, List, NaiveDateTime, OpenApiSpex.Cast.Error, Phoenix.LiveComponent.CID, Postgrex.Copy, Postgrex.Query, Regex, RemoteIp.Block, Time, URI, Version, Version.Requirement
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (elixir 1.14.3) lib/string/chars.ex:3: String.Chars.impl_for!/1
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (elixir 1.14.3) lib/string/chars.ex:22: String.Chars.to_string/1
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (stdlib 3.17) erl_eval.erl:685: :erl_eval.do_apply/6
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (stdlib 3.17) erl_eval.erl:446: :erl_eval.expr/5
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (stdlib 3.17) erl_eval.erl:123: :erl_eval.exprs/5
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (elixir 1.14.3) src/elixir.erl:294: :elixir.eval_forms/4
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (elixir 1.14.3) lib/module/parallel_checker.ex:110: Module.ParallelChecker.verify/1
Mai 31 08:51:04 dungeon-homeserver mix[17427]: (elixir 1.14.3) lib/code.ex:829: Code.eval_quoted/3
```
### Severity
I cannot use it as easily as I'd like
### Have you searched for this issue?
- [x] I have double-checked and have not found this issue mentioned anywhere.