Permission Denied for Table 'ir_cache' in Tryton

Hi everyone,

I’m encountering a permission denied for table ir_cache error when trying to access or perform actions in my Tryton instance, even though I’m logged in as an admin user.

Here’s the full traceback from the logs:

Traceback (most recent call last):
  File "/home/ssh/project/trytond/trytond/wsgi.py", line 116, in dispatch_request
    self.check_request_size(request, max_request_size)
  File "/home/ssh/bemodules/trytond/trytond/wsgi.py", line 96, in check_request_size
    if request.user_id:
       ^^^^^^^^^^^^^^^
  File "/functools.py", line 995, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/home/ssh/project/trytond/trytond/protocols/wrappers.py", line 110, in user_id
    user_id = security.login(
              ^^^^^^^^^^^^^^^
  File "/home/ssh/project/trytond/trytond/security.py", line 29, in login
    with Transaction().start(dbname, 0, context=context) as transaction:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ssh/project/trytond/trytond/transaction.py", line 126, in start
    Cache.sync(self)
  File "/home/ssh/project/trytond/trytond/cache.py", line 235, in sync
    cursor.execute(*table.select(
  File "/home/ssh/project/trytond/trytond/backend/postgresql/database.py", line 74, in execute
    cursor.execute(self, sql, args)
psycopg2.errors.InsufficientPrivilege: permission denied for table ir_cache

Even though I’m using an admin account in Tryton, it seems that the system fails during the cache synchronization step (Cache.sync) when starting a transaction, and it doesn’t proceed further.

I’ve already checked PostgreSQL permissions for the database user, but I might be missing something. Has anyone encountered this issue before? Or is there any configuration I need to adjust specifically for the ir_cache table?

Any help would be greatly appreciated!

Thanks in advance.

Usually I check if the user trytond uses to log into the database is the database owner.
You can check this using the \l command in psql.

I’ve search the owner of my database and it is the same.