Problem when importing Zendesk ticket: Problem with ObjectManager Attribute '_': At least one letters is needed (RuntimeError)

Infos:

  • Used Zammad version: 2.6.x
  • Used Zammad installation source: docker
  • Operating system: Ubuntu 18.04
  • Browser + version: Chrome 70.0.xx

Expected behavior:

Import finishes without errors

Actual behavior:

Got error on importing first ticket:

^[[36mzammad-scheduler_1      |^[[0m I, [2018-10-24T21:47:56.669170 #1]  INFO -- : Enqueued UpdateCtiLogsByCallerJob (Job ID: 73514849-76e3-41f3-a407-f23d26deed17) to DelayedJob(default) with arguments: "89217484244", {:limit=>40, :offset=>20}
^[[36mzammad-scheduler_1      |^[[0m -- add_column("tickets", "phone_number", :string, {:limit=>255, :null=>true})
^[[36mzammad-scheduler_1      |^[[0m    -> 0.0075s
^[[36mzammad-scheduler_1      |^[[0m E, [2018-10-24T21:48:01.491242 #1] ERROR -- : ImportJob 'Import::Zendesk' failed: Problem with ObjectManager Attribute '_': At least one letters is needed
^[[36mzammad-scheduler_1      |^[[0m E, [2018-10-24T21:48:01.491760 #1] ERROR -- : Problem with ObjectManager Attribute '_': At least one letters is needed (RuntimeError)
^[[36mzammad-scheduler_1      |^[[0m /opt/zammad/app/models/object_manager/attribute.rb:875:in `check_name'
^[[36mzammad-scheduler_1      |^[[0m /opt/zammad/app/models/object_manager/attribute.rb:347:in `add'

Steps to reproduce the behavior:

I can provide you with Json for tickets and fields, If I could understand what is needed and what attribute is crashing on.

I think the problem is that we have ticket fields named in Cyrillic, I’ve got more detailed log:

D, [2018-10-25T08:04:14.303508 #1074] DEBUG -- : Getting 'resource' value (ZendeskAPI::TicketField): #<ZendeskAPI::TicketField {"url"=>"https://sanatorium.zendesk.com/api/v2/ticket_fields/32089309.json", "id"=>32089309, "type"=>"tagger", "title"=>"Внутренний статус", "raw_title"=>"Внутренний статус", "description"=>"", "raw_description"=>"", "position"=>7, "active"=>true, "required"=>false, "collapsed_for_agents"=>false, "regexp_for_validation"=>nil, "title_in_portal"=>"Внутренний статус", "raw_title_in_portal"=>"Внутренний статус", "visible_in_portal"=>false, "editable_in_portal"=>false, "required_in_portal"=>false, "tag"=>nil, "created_at"=>2016-10-20 07:23:38 UTC, "updated_at"=>2018-05-22 08:11:22 UTC, "removable"=>true, "agent_description"=>"", "custom_field_options"=>[{"id"=>35325789, "name"=>"В работе", "raw_name"=>"В работе", "value"=>"в_работе", "default"=>false}, {"id"=>35325809, "name"=>"Зафиксировано", "raw_name"=>"Зафиксировано", "value"=>"зафиксировано", "default"=>false}, {"id"=>35325829, "name"=>"Передано в разработку", "raw_name"=>"Передано в разработку", "value"=>"передано_в_разработку", "default"=>false}, {"id"=>40401569, "name"=>"Приостановлен", "raw_name"=>"Приостановлен", "value"=>"приостановлен", "default"=>false}, {"id"=>360000015999, "name"=>"Выполнена", "raw_name"=>"Выполнена", "value"=>"выполнена", "default"=>false}]}>
D, [2018-10-25T08:04:14.304026 #1074] DEBUG -- : Getting 'model_class' value (Class): Ticket(id: integer, group_id: integer, priority_id: integer, state_id: integer, organization_id: integer, number: string, title: string, owner_id: integer, customer_id: integer, note: string, first_response_at: datetime, first_response_escalation_at: datetime, first_response_in_min: integer, first_response_diff_in_min: integer, close_at: datetime, close_escalation_at: datetime, close_in_min: integer, close_diff_in_min: integer, update_escalation_at: datetime, update_in_min: integer, update_diff_in_min: integer, last_contact_at: datetime, last_contact_agent_at: datetime, last_contact_customer_at: datetime, last_owner_update_at: datetime, create_article_type_id: integer, create_article_sender_id: integer, article_count: integer, escalation_at: datetime, pending_time: datetime, type: string, time_unit: decimal, preferences: text, updated_by_id: integer, created_by_id: integer, created_at: datetime, updated_at: datetime, phone_number: string)
D, [2018-10-25T08:04:14.304243 #1074] DEBUG -- : Getting 'sanitized_name' value (String): "_"
D, [2018-10-25T08:04:14.304543 #1074] DEBUG -- : Cache read: ObjectLookup::Ticket
D, [2018-10-25T08:04:14.307572 #1074] DEBUG -- :   ObjectManager::Attribute Load (0.7ms)  SELECT  "object_manager_attributes".* FROM "object_manager_attributes" WHERE "object_manager_attributes"."object_lookup_id" = $1 AND "object_manager_attributes"."name" = $2 LIMIT $3  [["object_lookup_id", 2], ["name", "_"], ["LIMIT", 1]]
E, [2018-10-25T08:04:14.308962 #1074] ERROR -- : ImportJob 'Import::Zendesk' failed: Problem with ObjectManager Attribute '_': At least one letters is needed
E, [2018-10-25T08:04:14.309348 #1074] ERROR -- : Problem with ObjectManager Attribute '_': At least one letters is needed (RuntimeError)

After “sanitizing” field name contains only “_” character, so import fails

Hi @ZlobnyiSerg - thanks for digging deep and getting all these valuable information. This is actually a bug! Could you please file an issue over at GitHub (https://github.com/zammad/zammad/issues/new) and add the information you gathered. We’ll hurry to make your avatar smile again :nerd_face:

Can anybody provide with workaround please? We’re very waiting for fixing this. What should we rename in Zendesk to import tickets successfully?

Hi @ZlobnyiSerg - I had a short look into the problematic and there is currently no way to fix this fast on the Zammad side. You can work around the issue by renaming the title of all custom Object Attributes to use only latin letters cyrillic is not supported (by the library we use). Hope this helps.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.