Feature(s) impacted
We have a smart action form with a change hook. The change hook implements some changes to the other form fields. This feature worked without problem for a long time and this issue appeared suddenly today without any changes from our side. Here is the source:
...
actions: [
    {
      name: 'Close the case',
      type: 'single',
      fields: [
        {
          field: 'template',
          description: 'E-mail message template to send to the client',
          type: 'Enum',
          enums: [
            'No E-mail',
            'Refer to Legal Help',
            'Refer to Police/Prosecutor',
            'Refer to AsyLex',
            'Refer to SozialHilfe',
            'No Referral',
          ],
          isRequired: true,
        },
        {
          field: 'greeting',
          type: 'String',
          isReadOnly: true,
        },
        {
          field: 'message',
          type: 'String',
          widget: 'text area',
        },
        {
          field: 'regards',
          type: 'String',
          isReadOnly: true,
          widget: 'text area',
        },
      ],
      hooks: {
        load: ({ fields, _ }) => {
          fields['template'].value = 'No E-mail';
          fields['message'].isReadOnly = true;
          return fields;
        },
        change: {
          template: ({ fields, _ }) => {
            console.log('l');
            let messageTemplate = null;
            const template = fields['template'].value;
            fields['message'].isReadOnly = false;
            switch (template) {
              case 'Refer to Legal Help':
                messageTemplate =
                  'Wir empfehlen Ihnen, sich das Angebot des Vereins Legal Help unter www.verein-legal-help.ch anzusehen. Allenfalls haben Sie im Rahmen dieses Angebots Anspruch auf eine kostenlose Erstberatung.';
                break;
              case 'Refer to Police/Prosecutor':
                messageTemplate =
                  'Da in Ihrem Fall möglicherweise Straftaten begangen wurden, empfehlen wir Ihnen, sich in einem ersten Schritt an die Polizei und/oder an die Staatsanwaltschaft zu wenden.';
                break;
              case 'Refer to AsyLex':
                messageTemplate =
                  'Wir empfehlen Ihnen, sich das Angebot des gemeinnützigen Vereins AsyLex unter www.asylex.ch anzusehen. AsyLex ist auf die Bearbeitung von Fällen im Asylrecht spezialisiert und kann Sie möglicherweise unterstützen.';
                break;
              case 'Refer to SozialHilfe':
                messageTemplate =
                  'Wir empfehlen Ihnen, sich das Angebot des UFS (Unabhängige Fachstelle für Sozialhilferecht) unter https://www.sozialhilfeberatung.ch/ anzusehen. Allenfalls haben Sie im Rahmen dieses Angebots Anspruch auf eine kostenlose Erstberatung.';
                break;
              case 'No Referral':
                messageTemplate = '';
                break;
              default:
                fields['greeting'].value = '';
                fields['message'].value = '';
                fields['message'].isReadOnly = true;
                fields['regards'].value = '';
                return fields;
            }
            const message = [];
            message.push(
              'Leider hat sich bisher keine Anwältin/kein Anwalt auf Ihre Anfrage gemeldet. Wir haben Ihren Fall daher nun geschlossen.'
            );
            if (messageTemplate && messageTemplate.length) message.push(messageTemplate);
            const regards = [];
            regards.push('Wir wĂĽnschen Ihnen alles Gute./Nous vous souhaitons bonne chance./...');
            regards.push('Freundliche GrĂĽsse/Bien cordialement,/...');
            regards.push("Ihr Jurata-Team/L'équipe Jurata/...");
            regards.push('info@jurata.ch');
            regards.push('Jurata AG | Rieterstrasse 6, 8002 ZĂĽrich | www.jurata.ch');
            fields['greeting'].value = 'Guten Tag/Bonjour/...';
            fields['message'].value = message.join('\n\n');
            fields['regards'].value = regards.join('\n\n');
            return fields;
          },
        },
      },
    }
]
...
Observed behavior
When changing the field for which a change hook is registered, no call is being made to our server, instead the typeerror from below appears.
Expected behavior
No Typeerror, a call to our server, and the change hook succesfully completing.
Failure Logs
From the browser
client-47f1f74e7a684d8ef8ed9f8b533b4e30.js:1 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'attributes')
    at e.requestAgentHookWithContext (client-47f1f74e7a684d8ef8ed9f8b533b4e30.js:1:3275646)
    at e.triggerHook (client-47f1f74e7a684d8ef8ed9f8b533b4e30.js:1:3275850)
    at invoke (vendor-d090e5c62b54db7a841f6a16ca9727ed.js:58:418835)
    at d.flush (vendor-d090e5c62b54db7a841f6a16ca9727ed.js:58:417895)
    at p.flush (vendor-d090e5c62b54db7a841f6a16ca9727ed.js:58:419675)
    at B._end (vendor-d090e5c62b54db7a841f6a16ca9727ed.js:58:424760)
    at B.end (vendor-d090e5c62b54db7a841f6a16ca9727ed.js:58:421851)
    at B._runExpiredTimers (vendor-d090e5c62b54db7a841f6a16ca9727ed.js:58:426036)
Context
- Project name: jurata
 - Team name: jurata
 - Environment name: all of them
 - Agent (forest package) name & version: “forest-express”: “^7.4.0”,
 - Database type: mongoose
 - Recent changes made on your end if any: none