Admin-Frontend: 404 beim update auf das repository

Hallo zusammen,

ich arbeite derzeit daran, eine Herausforderung anzugehen: Wenn ich mich auf einer Kategorie-Seite befinde und unter dem Reiter „Layout“ Änderungen an einem Element vornehme, wie z.B. Textänderungen, kann ich nicht mehr zum ursprünglichen Vorlageninhalt zurückkehren. Um dies zu beheben, muss ich den entsprechenden Eintrag aus category_translation.slot_config entfernen.

Jedoch stoße ich auf ein Problem: Wenn ich die Eigenschaft slotConfig ändere und versuche, das Objekt über das Repository erneut zu speichern (mittels PATCH), erhalte ich einen 404-Fehler. Das Speichern des unveränderten Objekts funktioniert hingegen. Zudem kann ich keine anderen Felder ändern, beispielsweise description. Hier ist der relevante Ausschnitt des Codes (das categoryTranslationObjekt wird über repository.search(...) abgerufen):

...
computed: {
        repository() {
            return this.repositoryFactory.create('category_translation')
        },
    },
...
    removeSlotEntry(categoryTranslationObject, slotId) {
            console.log("Category:", categoryTranslationObject)
            console.log("Slot Id:", slotId)

            delete categoryTranslationObject.slotConfig[slotId]

            // TODO: Neues Objekt wird nicht gespeichert!
            this.repository.save(categoryTranslationObject, Context.api).then(() => {
                console.log("Gespeichert")
            })
        }

Für Hilfe oder Ratschläge wäre ich sehr dankbar. Vielleicht hat jemand bereits ähnliche Erfahrungen gemacht und kann mir weiterhelfen.

Danke im Voraus!

Ich habe jetzt einen API-Endpoint erstellt und versucht das Repository-Update serverseitig durchzuführen, das hat geklappt:

    public function removeSlotId(Context $context, String $slotId) : array
    {
        $pages = $this->findPagesBySlotId($context, $slotId);
        $rsp = [];
        foreach ($pages as $page) {
            $slotConfig = $page->get('slotConfig');
            unset($slotConfig[$slotId]);
            $item = array(
                'categoryId' => $page->get('categoryId'),
                'languageId' => $page->get('languageId'),
                'slotConfig' => $slotConfig
            );
            $this->categoryTranslationRepository->update([$item], $context);
            $rsp[] = $page->get('categoryId') . '-' . $page->get('languageId');
        }
        return $rsp;
    }

Ich Frage mich aber noch immer warum ich das nicht in Javascript lösen konnte. Eigentlich wollte ich so viel Boilerplate vermeiden (route.xml, services.xml, Controller, Service, …).