The issue
I have the "Approval" plugin enabled and configured so that every new posts from a user not part of an "approved" group must be verified by a moderator. Posts are correctly flagged, but approving the post does not do anything.
I tried in debug mode to see if I can have more details, but nothing gets logged.
There are no errors in the console, and I can see in the network tab that the request to mark the post as approved went through
Payload: {"data":{"type":"posts","attributes":{"isApproved":true},"id":"53"}}
Response:
{
"data": {
"type": "posts",
"id": "53",
"attributes": {
"number": 1,
"createdAt": "2025-06-25T17:55:08+00:00",
"contentType": "comment",
"contentHtml": "\u003Cp\u003EI am testing\u003C\/p\u003E",
"renderFailed": false,
"content": "I am testing",
"ipAddress": "REDACTED",
"canEdit": true,
"canDelete": true,
"canHide": true,
"mentionedByCount": 0,
"canFlag": true,
"isApproved": true,
"canApprove": true,
"canStartPoll": true,
"hasUpvoted": false,
"hasDownvoted": false,
"canSeeVotes": true,
"votes": "1",
"canVote": true,
"seeVoters": true,
"canBanIP": true
},
"relationships": {
"discussion": {
"data": {
"type": "discussions",
"id": "29"
}
},
"user": {
"data": {
"type": "users",
"id": "2"
}
}
}
},
"included": [
{
"type": "discussions",
"id": "29",
"attributes": {
"title": "Test approval system",
"slug": "29-test-approval-system",
"isApproved": false,
"hasUpvoted": true,
"hasDownvoted": false,
"votes": 1,
"seeVotes": true,
"canVote": true,
"hasBestAnswer": false,
"bestAnswerSetAt": null
}
},
{
"type": "users",
"id": "2",
"attributes": {
"username": "REDACTED",
"displayName": "REDACTED",
"avatarUrl": null,
"slug": "REDACTED",
"joinTime": "2025-01-24T20:39:33+00:00",
"discussionCount": 1,
"commentCount": 4,
"canEdit": true,
"canEditCredentials": true,
"canEditGroups": true,
"canDelete": true,
"lastSeenAt": "2025-06-25T17:54:56+00:00",
"isEmailConfirmed": true,
"email": "REDACTED",
"nearataTwoFactorCanEnable": true,
"nearataTwoFactorAppEnabled": false,
"fofTermsPoliciesState": {
"1": {
"accepted_at": "2025-02-06T15:08:32+00:00",
"has_update": false,
"must_accept": false,
"is_accepted": "1"
},
"2": {
"accepted_at": "2025-02-06T15:08:33+00:00",
"has_update": false,
"must_accept": false,
"is_accepted": "1"
}
},
"fofTermsPoliciesHasUpdate": false,
"fofTermsPoliciesMustAccept": false,
"suspendReason": null,
"suspendMessage": null,
"suspendedUntil": null,
"canSuspend": true,
"blocksPd": false,
"canFoFImpersonate": true,
"impersonateReasonRequired": false,
"bio": "",
"canViewBio": true,
"canEditBio": true,
"fof-upload-uploadCountCurrent": null,
"fof-upload-uploadCountAll": null,
"moderatorNoteCount": 4,
"points": 5,
"canHaveVotingNotifications": false,
"bestAnswerCount": 0,
"isBanned": false,
"canBanIP": true,
"canSpamblock": true,
"canEditNickname": true,
"canViewWarnings": false,
"canManageWarnings": false,
"canDeleteWarnings": false,
"visibleWarningCount": 0
},
"relationships": {
"ranks": {
"data": []
}
}
}
]
}
Looking at the database, the post has is_approved set to 0. Changing it to 1 marks it as approved, so something seems to be failing when updating the database.
Flarum information
Flarum core: 1.8.10
PHP version: 8.3.21
MySQL version: 10.11.13-MariaDB-cll-lve
Loaded extensions: Core, date, libxml, openssl, pcre, sqlite3, zlib, bz2, calendar, ctype, curl, hash, filter, ftp, gettext, json, iconv, SPL, pcntl, random, readline, Reflection, session, standard, mbstring, shmop, SimpleXML, tokenizer, xml, bcmath, dom, fileinfo, gd, intl, exif, mysqlnd, mysqli, PDO, pdo_mysql, pdo_sqlite, Phar, posix, soap, sockets, sodium, xmlreader, xmlwriter, xsl, zip, clos_ssa, Zend OPcache
+-------------------------------+-----------------+--------+
| Flarum Extensions | | |
+-------------------------------+-----------------+--------+
| ID | Version | Commit |
+-------------------------------+-----------------+--------+
| flarum-flags | v1.8.2 | |
| flarum-tags | v1.8.4 | |
| flarum-approval | v1.8.2 | |
| flarum-suspend | v1.8.4 | |
| flarum-mentions | v1.8.5 | |
| flarum-subscriptions | v1.8.1 | |
| askvortsov-auto-moderator | v0.1.3 | |
| flarum-markdown | v1.8.1 | |
| fof-pages | 1.0.8 | |
| fof-byobu | 1.4.3 | |
| fof-impersonate | 1.2.0 | |
| fof-follow-tags | 1.2.9 | |
| walsgit-discussion-cards | 1.3.0 | |
| v17development-user-badges | v1.1.0 | |
| v17development-seo | v2.0.7 | |
| therealsujitk-gifs | v4.1.1 | |
| nearata-twofactor | v2.2.1 | |
| litalino-title-content-length | 1.0.0 | |
| ianm-syndication | 1.3.4 | |
| fof-user-bio | 1.4.2 | |
| fof-upload | 1.8.3 | |
| fof-terms | 1.4.2 | |
| fof-subscribed | 1.1.4 | |
| fof-sitemap | 2.2.1 | |
| fof-profile-image-crop | 1.1.6 | |
| fof-prevent-necrobumping | 1.2.1 | |
| fof-polls | 2.2.14 | |
| fof-nightmode | 1.6.0 | |
| fof-moderator-notes | 1.3.0 | |
| fof-links | 1.3.0 | |
| fof-linguist | 1.1.5 | |
| fof-gamification | 1.6.8 | |
| fof-frontpage | 1.2.0 | |
| fof-forum-statistics-widget | 1.2.1 | |
| fof-formatting | 1.1.0 | |
| fof-drafts | 1.2.12 | |
| fof-default-user-preferences | 1.2.1 | |
| fof-best-answer | 1.6.4 | |
| fof-ban-ips | 1.1.2 | |
| fof-anti-spam | 1.1.3 | |
| flarum-sticky | v1.8.2 | |
| flarum-statistics | v1.8.1 | |
| flarum-nicknames | v1.8.2 | |
| flarum-lock | v1.8.2 | |
| flarum-lang-french | v4.29.0 | |
| flarum-lang-english | v1.8.0 | |
| flarum-extension-manager | v1.0.7 | |
| flarum-emoji | v1.8.1 | |
| flarum-bbcode | v1.8.0 | |
| datlechin-link-preview | v1.6.0 | |
| blomstra-digest | 0.1.0-beta.11.7 | |
| askvortsov-moderator-warnings | v0.6.3 | |
+-------------------------------+-----------------+--------+
Base URL: REDACTED
Installation path: REDACTED
Queue driver: sync
Session driver: file
Scheduler status: Actif
Mail driver: smtp
Debug mode: off
Edit: Here's a screenshot of the permissions in the Approval extension. Only members of a specific group are allowed to post without requiring approval. This group is automatically added by Auto Moderator after having created 5 messages.
