Troubleshooting
Common issues and where to fix them. Most settings live in Admin → Settings; secrets are stored encrypted in the database.
AI generation
“No provider configured” / generations fail
Add at least one AI provider key under Settings → AI and make sure it is enabled and first in the provider order. Use the per-provider Test button to check connectivity. If the primary provider is down, RedactSEO falls through to the next enabled provider in the order.
Image generation is missing
Turn on the image-studio master switch under Settings → Images, enable at least one model and add that provider’s key. Set a default model.
“Insufficient words” / not enough credits
Content is billed in words and images/audit in credits. Check the user’s balances, their plan allowance, and the
recharge pack settings. The API returns 402 insufficient_words when the word balance is too low.
Translations
New language not showing translated content
Admin-authored content is translated asynchronously through the translation queue. Open
Settings → Translations and use Run to drain the queue, or Requeue /
Retry if items are stuck or failed. On production, a real cron (php cron.php) keeps the queue
moving steadily.
Emails not sending
Configure SMTP under Settings → Email and send a test from Settings → Emails. Verification, password-reset, contact and billing emails all use this transport. If verification is enforced (Security toggle) and mail is broken, users can be stuck at sign-in — temporarily disable Require email verification while you fix SMTP.
Captcha & login
Captcha blocking forms
Under Settings → Captcha, confirm the provider keys are correct and review which forms it is enabled on (login, register, forgot, checkout, contact). Set the provider to None to disable it entirely.
Social login not appearing
A social provider only shows on the login page when its OAuth credentials are filled in under Settings → Login providers.
Payments
Subscription state not updating after payment
Make sure the gateway webhook (/webhooks/{gateway}) is registered in your Stripe/PayPal dashboard. Even
without webhooks, the return handler verifies and fulfils the purchase when the buyer comes back. Refunds are issued from
Admin → Payments.
Maintenance & updates
Stuck in maintenance mode
Maintenance can be toggled under Settings → Maintenance, and the updater enables it automatically while
applying a release (switching it off when finished or on rollback). Admins always keep access; to clear it manually, set
maintenance_enabled to 0 in the settings table.
An update failed
The updater takes a backup before applying a release; if an update fails it can restore from that backup. Backups can be downloaded or deleted from the license/update screen. Re-run the license check first if updates are not detected.
Diagnostics
If a page errors with no detail, enable debug mode in config.php temporarily to surface the message, then turn
it back off in production. Never leave debug on for a live site.