Zendesk Migration - Error with ObjectManager

Infos:

  • Used Zammad version: 6.3.1-1716973733.929318d1.jammy
  • Used Zammad installation type: package
  • Operating system: Ubuntu 22.04
  • Browser + version: Chrome

Hi guys,

I’m trying to set up a new ticketing platform and I need to import data from Zendesk. I was trying to do so but I got the following error:

Problem with ObjectManager Attribute ‘brandimageurl’: Validation failed: Data type can’t be altered after creation (you can delete the attribute and create another with the desired value)

After this, the tickets migration is stucked. I know that I can move on by the zammad console and that’s fine, but it would be nice if the ticket migration was in place.

After checking the production logs, I got the following errors:
E, [2024-05-30T21:12:07.460235#710-149120] ERROR – : uninitialized constant Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Custom_status (NameError)
E, [2024-05-30T21:12:12.038274#710-149120] ERROR – : ImportJob ‘Import::Zendesk’ failed: Problem with ObjectManager Attribute ‘brand_image_url’: Validation failed: Data type can’t be altered after creation (you can delete the attribute and create another with the desired value)
E, [2024-05-30T21:12:12.038349#710-149120] ERROR – : Problem with ObjectManager Attribute ‘brand_image_url’: Validation failed: Data type can’t be altered after creation (you can delete the attribute and create another with the desired value) (ActiveRecord::RecordInvalid)

Any ideas?

Thank you.

Tried the same via zammad console, with same result:

=> #<ImportJob:0x000079ad8c5dd348
id: 1,
name: “Import::Zendesk”,
dry_run: false,
payload: {},
result:
{“Groups”=>{“skipped”=>0, “created”=>56, “updated”=>0, “unchanged”=>0, “failed”=>0, “deactivated”=>0, “sum”=>56, “total”=>56},
“Users”=>{“skipped”=>0, “created”=>7856, “updated”=>13, “unchanged”=>0, “failed”=>0, “deactivated”=>0, “sum”=>7869, “total”=>7869},
“Organizations”=>{“skipped”=>0, “created”=>531, “updated”=>0, “unchanged”=>1, “failed”=>0, “deactivated”=>0, “sum”=>532, “total”=>532},
“Tickets”=>{“skipped”=>0, “created”=>0, “updated”=>0, “unchanged”=>0, “failed”=>0, “deactivated”=>0, “sum”=>0, “total”=>1000},
“error”=>
“Problem with ObjectManager Attribute ‘brand_image_url’: Validation failed: Data type can’t be altered after creation (you can delete the attribute and create another with the desired value)”},
started_at: Wed, 05 Jun 2024 15:22:17.736000000 UTC +00:00,
finished_at: Wed, 05 Jun 2024 15:34:18.443000000 UTC +00:00,
created_at: Wed, 05 Jun 2024 15:22:07.198000000 UTC +00:00,
updated_at: Wed, 05 Jun 2024 15:34:18.443000000 UTC +00:00>

Maybe you can send some additional information from the following endpoint:

https://asd.zendesk.com/api/v2/ticket_fields

You need to use the access token to use the API (Security and authentication),

When there is sensitive data you should remove it or maybe send a private message.

Hi dominikklein,

I’ve already sent you the response of Zendesk API end-point via private message.
Despite the fact that we renamed the custom field to ‘Channel image URL’, we still get the same error message while making the migration:

Thank you for your support!

You have two fields with the same title but a different field type. Which seems to be possible on Zendesk side.

During the important, we need to generate a field name and for this, we are using the sanitized title of the Zendesk field. And inside Zammad the object attribute name for an object is unique.

To solve the migration problem you need to rename one of the “Brand image URL” fields.

Hi dominikklein,

We did deleted the ‘brand_image_url’ field and it’s no longer on our Zendesk. Despite this fact, zammad migration is still failling with the same message:

What am I missing?
Fresh JSON from Zendesk sent by PM due to sensitive information.
Thank you once more.

Hi dominikklein,

You were right - despite the fact that we tried to delete the field via web ui, the field was still present on the API GET request. Just for information to another person that get throught this, you need to delete the ticket field via Zendesk API:

Developer documentation for products at Zendesk

Thank you once more dominikklein.

I’ll continue with the migration.