AI translation backfill not working after all settings configured

I’m trying to enable automatic content localization (AI translation backfill) on my self-hosted Discourse instance and I’ve followed all the available guidelines, but I’m not seeing any translations appear.

Here’s what I’ve done so far:

  • Enabled content localization enabled
  • Selected at least one language in content localization supported locales
  • Enabled ai translation enabled
  • Chosen a working ai translation model (test is successful)
  • Set ai_translation_backfill_hourly_rate to a number greater than 0 (using the environment variable method in app.yml)
  • Set ai translation max age days to a large value

After saving and rebuilding, I posted topics in a different language than my user language preference, but nothing gets translated. I don’t see any evidence of translation jobs running (tried checking Sidekiq scheduled/queues), and the user-facing content remains untranslated.

Is there anything else I should check, or any way to better diagnose why the translation backfill is not triggering?

1 Like

What is your ai_translation_backfill_hourly_rate – can you try 20 to begin with? It would help if you could share all the values.

Are all your posts public and not in restricted categories? If ai_translation_backfill_limit_to_public_content is disabled, you won’t have any posts translated.

SiteSetting.ai_translation_verbose_logs=true will show some details when it’s successful.

Alternatively if you have data explorer, you can try the following to see

  • if there are any LLM calls to translate
  • or if post locales are getting detected but the posts are not translated
SELECT COUNT(*)
FROM ai_api_audit_logs
WHERE feature_name = 'translation'
SELECT COUNT(*)
FROM posts
WHERE (locale IS NOT NULL AND locale <> '')
1 Like

Thank you for your reply!

  • My DISCOURSE_AI_TRANSLATION_BACKFILL_HOURLY_RATE is set to 30.
  • ai_translation_backfill_limit_to_public_content is enabled.
  • All of my posts are public and not in any restricted categories.

Were these the jobs you were looking for?


Please also do check the queries mentioned above.

Thank you for your suggestion!

Yes, I can see these jobs in Sidekiq under /sidekiq/scheduler:

  • Jobs::PostLocalizationBackfill
  • Jobs::TopicLocalizationBackfill
  • Jobs::TopicsLocaleDetectionBackfill

They all appear with status “OK” and have recently run.

I also noticed that the topic titles are being translated correctly, but the post content itself is not translated yet.
Should I simply wait longer for the content to be processed, or is there another setting that I need to check for post content translation?

I have the a similar problem after making all the same changes in my hosted instance. In this case I’m using openai 4o. It seems to translate only the past 3 or 4 posts and nothing further. I still have plenty of credit available on my api key.

What is your ai translation max age days at ?
After adjusting that, it can take a while to take effect.

  1. Its been around 24h

Hello,

I think I’m running into the same issue. I’ve followed all the steps in the guide (https://meta.discourse.org/t/content-localization-manual-and-automatic-with-discourse-ai/370969), including setting AI_translation_backfill_hourly_rate = 50.

I’ve tested with all available OpenAI models (tests were successful), and I also ran a rebake.

Unfortunately, the AI plugin still refuses to perform automatic translations.

Has anyone an idea what could be wrong?

I’d be very grateful for any help, as I’m really looking forward to this feature.

Version: 3.6.0.beta1-dev

Regards

Graham

Where I’m at currently. I ran the test with the API key it’s fine. Like I said, translated like 3-4 pots then no others, also new posts are being added and no translations on those.

@joo : me and @tyronejv are using OpenAI. Is that also the case for you?
Maybe the issue is related to their API connection.

@tyronejv I’m using very similar settings like you. The API key test works fine, but translations still don’t run.

  • anything in /logs ?

  • try to go to /sidekiq/scheduler and manually trigger all jobs that contain “LocalizationBackfill” and “LocaleDetectionBackfill”

Solved!

  1. Do not use GPT-5 unless you have not verified your organisation in OpenAi-Organization settings
  2. insert your organisation Id (https://platform.openai.com/settings/organization/general) in discourse ai settings
  3. disable temperature settings in discourse ai llm settings
1 Like

At the moment GPT-5 is so slow that its use shound be targeted to different type things. But sure, that is matter of taste and it depends.

But I’m using Chat GPT/GPT-5 in Finnish every now and then. Earlier 4x-series where actually quite good with a small and hard language such Finnish. Now… I would never use it for translations. Perhaps GPT-5 and next generations evolve and do better job in the future and perhaps it is already spotless between major languages.

But sure, that was totally off topic, but perhaps it can be allowed this one time. You did find needed solution after all. But my vague point is this topic should never born, because , at the moment and by my experiences, no one should never use GPT-5 for translations in the first place.

Thanks for the screenshots.

As mentioned by @GrahamM ai_translation_backfill_hourly_rate needs to be set by your site admin as it is a hidden setting.


Other than what’s mentioned in the FAQ, could you folks check -

  • Check the graph at https://your-site.com/admin/plugins/discourse-ai/ai-translations. How many eligible posts are there? If it doesn’t show up, you’ll need to update
    • e.g.

SELECT 
  a.id,
  a.created_at,
  a.raw_request_payload,
  a.raw_response_payload,
  a.post_id
FROM ai_api_audit_logs a
WHERE a.created_at > '2025-09-01'
AND a.feature_name = 'translation'
ORDER BY a.created_at DESC
LIMIT 100