addTagId API call is deleting other tags, blueprints, and HW IDs

When I make an API call to add a tag using ‘addTagId’ the tag is added, but existing tags, blueprints, and HW IDs are all removed. The update mask is blank, which should preserve other values. I’ve tried calling it from the Open API Docs | Golioth web page with the same result.

curl code to reproduce this issue is below. When calling this code the tag is added, but other tags, blueprints, and hardware IDs are all DELETED by this call.

jsondata='{"addTagId":["64fe540f3fac70940ab38db8"]}'
curl -s -X 'PUT'   'https://api.golioth.io/v1/projects/'$projectid'/devices/'$deviceid  -H 'Content-Type: application/json' -H 'accept: application/json' -H 'x-api-key:'$token -H 'Authorization:'$token -d $jsondata  |  jq

Any ideas why?

Hi @john.stuewe,

Thanks for reaching out! Partial update of resources should be done using a PATCH request rather than a PUT request. Changing PUT to PATCH in your provided cURL command should result in the desired behavior.