Shopware 6 API: Fehler "fromHexToBytes(): Argument #1 ($uuid) must be of type string, null given"

Hallo Zusammen,

Bei unseren Kunden importieren wir Daten in den Shop per Shopware Sync API.
Hin und wieder (und augenscheinlich nur bei bei der Entity „custom_field“) kommt es zum Fehler

Status Code: 500 | 
Title: Internal Server Error | 
Detail: Shopware\Core\Framework\Uuid\Uuid::fromHexToBytes(): Argument #1 ($uuid) must be of type string, null given, called in /var/www/html/vendor/shopware/core/Framework/Uuid/Uuid.php on line 105

Aktuell stehen wir vor einem Rätsel, warum dies so ist, denn das Payload, welches wir an die Sync API schicken, sieht erstmal richtig aus.

Beispiel:

POST /api/_action/sync HTTP/1.1

User-Agent: GuzzleHttp/7

Host: <URL des Kundenshops>

Content-Type: application/json

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJhZG1pbmlzdHJhdGlvbiIsImp0aSI6ImFhZmRlZWJmMzY1Nzg5NzFlNDk5Y2E1ZGMyNTBhZjNlZDc1MzI1MjkxZmRmYWI3MWM3NWRmY2ZlZDU0ZmY2OTFhODdmMjkyYjdlYzEyODA1IiwiaWF0IjoxNzMzMjUyODYyLjQ2MDY5NCwibmJmIjoxNzMzMjUyODYyLjQ2MDY5NywiZXhwIjoxNzMzMjUzNDYyLjM5MjMyNCwic3ViIjoiM2IzMDNmMzA2NjFlNDc4ZTk2NjEzM2FiMmYyZWZlYWMiLCJzY29wZXMiOlsid3JpdGUiLCJhZG1pbiJdfQ.zKbsa08wx8UNwsnbkdHK__CijL_vEUkO9sOQtWPmkrW-i_bJDmn8HYxxZhX8Twh6rF4BhHU1xdGBjoyvYUgSYZHqvbNUIyyq106qbdgP2E0RsODrsG23c3Xg1aRXL63n_-W_z2bGSFcrXbv_xfm6ntBoKbiIQRnnpo30zt7-RIEbPKdeOx7WXhHxEfyAnR1Pgi3oGK4qqZbKe6HmomUjbyTu3oifzpCCAVKfekayWR6tDopT4kzba84yXP8-RERGjlAiLMVrzmp4qMnRRbWygWkxIrsZZyE8WYm9d9pLBoZ5SWn7v7yW9HAP9Tzw_00y9BQGvug58Vm8z37MWajvyg

Accept: */*

indexing-behavior: disable-indexing



{"custom_field":{"action":"upsert","entity":"custom_field","payload":[{"name":"kein_postversand","type":"int","id":"01938df2194e737a9059ec6e0c0abb6d"}]}}

Hat jemand oder Shopware selbst eine Idee, warum der Fehler auftreten könnte?

Viele Grüße

Dennis Konoppa

Muss das eventuell in einem Array als String übergegen werden?

Was genau meinst du?

Wie gesagt, die Syntax ist grundsätzlich korrekt und funktioniert in 99% der Fälle

Ich sehe nur, dass die Funktion fromHexToBytes() ein Array erwartet. Da können wohl mehrere UUIDs übergeben werden. Vielleicht passt die Syntax nicht. Ist jetzt nur so eine Vermutung von mir!

CustomFields haben ja erstmal nur ein ID-Feld… die Sync API übergibt ein Array mit den Datensätzen, die aktualisiert werden sollen, somit beinhaltet jedes CustomField, welches per Sync API geschickt wird, am Ende nur die ID und die weiteren Felder, welche aktualisiert werden sollen.