Skip to Content
Menu
You need to be registered to interact with the community.
This question has been flagged

Hello,

after restoring database (with option database was moved) on the same server (just deleted and restored database) I see following error in logs:


2024-10-24 20:25:52,401 6706 DEBUG ? odoo.service.server: cron0 polling for jobs
2024-10-24 20:25:52,405 6706 DEBUG db_name odoo.addons.base.models.ir_cron: job 58 acquired
2024-10-24 20:25:52,409 6706 WARNING db_name odoo.addons.base.models.ir_cron: Exception in cron:
Traceback (most recent call last):
  File "/opt/odoo/odoo16/odoo/odoo/addons/base/models/ir_cron.py", line 319, in _process_job
    interval = _intervalTypes[job['interval_type']](job['interval_number'])
               ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
KeyError: None


How to debug and fix?

Thank you,

Carlo

Avatar
Opusti
Best Answer

Hello Carlo


The KeyError: None error in your Odoo logs typically indicates that a cron job (automated background task) has an undefined or incorrect interval type. This can happen if the interval_type field in the ir.cron table is missing, set to None, or incorrectly configured after a database restore.

Here’s how you can debug and fix this issue:

1. Check the ir.cron Table for Missing or Invalid Values

  1. Access the Database:
    • Use a PostgreSQL client (e.g., psql on the command line) to connect to your database.
  2. Run a Query to Check interval_type:
    • Run this SQL query to identify any cron jobs with an invalid interval_type:
      SELECT id, name, interval_type, interval_number FROM ir_cron WHERE interval_type IS NULL OR interval_type NOT IN ('minutes', 'hours', 'days', 'weeks', 'months');
           This will show any records where interval_type is missing or invalid.
  3. Update the Missing Values:
    • If any rows have interval_type set to NULL or contain invalid values, update them with a valid interval_type value (such as 'days' or 'hours').
           Example SQL to update the value:
           UPDATE ir_cron SET interval_type = 'days' WHERE id = <id_of_the_cron_job>; 
           Replace <id_of_the_cron_job> with the actual ID of the cron job.

2. Restart the Odoo Service: After making changes to the database, restart the Odoo service to apply the fixes.
sudo service odoo restart

3. Debugging and Monitoring

  1. Check the Logs: After restarting, monitor the logs to ensure the error no longer appears.
  2. Verify Cron Jobs: Go to Settings > Technical > Automation > Scheduled Actions in Odoo, check that all cron jobs are enabled, and ensure they have valid interval types.

Let me this helps :)

Avatar
Opusti
Avtor Best Answer

Thank you for great answer. Issue is resolved. I had two crons with NULL values and I managed to update values through pgAdmin.


Avatar
Opusti

Glad to hear that! 😊

Related Posts Odgovori Prikazi Aktivnost
3
sep. 23
11768
1
dec. 24
1165
0
okt. 24
2262
1
avg. 24
5162
3
jul. 24
5208