Teak upgrade: all problems fail with “Scores must contain only a raw earned and raw possible value. Got {0, 1}"

Dear all,

I’ve upgraded an existing Open edX installation from Lilac to Teak using Tutor, going through each intermediate release. The upgrade completed without errors.

Since the migration, all problems fail to load, both in Studio preview and in the LMS.

Here is the error I see in the logs :

2025-11-11 11:11:11,554 ERROR 16 [edx.courseware] [user XXXXXX] [ip XXX.XXX.XXX.XXX] capa_block.py:1005 - LcpFatalError Encountered for block-v1:ORG+11235555ergre+2025_S2+type@problem+block@764c81123456789b723d7f
Traceback (most recent call last):
  File "/openedx/edx-platform/xmodule/capa_block.py", line 364, in student_view
    self.lcp
  File "/openedx/venv/lib/python3.11/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
                                         ^^^^^^^^^^^^^^^^^^^
  File "/openedx/edx-platform/xmodule/capa_block.py", line 850, in lcp
    if self.score is None:
       ^^^^^^^^^^
  File "/openedx/venv/lib/python3.11/site-packages/xblock/fields.py", line 518, in __get__
    value = self.from_json(field_data.get(xblock, self.name))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/openedx/edx-platform/xmodule/fields.py", line 276, in from_json
    raise TypeError('Scores must contain only a raw earned and raw possible value. Got {}'.format(
TypeError: Scores must contain only a raw earned and raw possible value. Got {0}

I kept the full database from my previous Lilac installation (no data reset).
I’m wondering if this might be related to old “score” values stored in the problem state.

Has anyone encountered this error before, or knows what typically causes it?

Best regards,
François