Mobile Site not working

Hello All, we have a Problem with the mobile Site,

Infos:

  • Used Zammad version: Version 6.0.0-1691946056.47e1e571.jammy
  • Used Zammad installation type: package
  • Operating system: Ubuntu 22
  • Browser + version: All

Expected behavior:

  • Working Mobile Site

Actual behavior:

After updating to version 6, we are experiencing an issue where the mobile site is not functioning properly. When the page is accessed at https://xxxx.xxxxxxx.net/mobile/, the queues and tickets are visible. However, when clicking on a ticket, an error immediately occurs: 500. I have already read other posts from users who have a similar issue with the “mobile” page, but I would say that in our case, the root cause is different. When I run “netstat -tulpn” on the Linux VM, Zammad is listening on the correct ports. “tcp 0 0 127.0.0.1:6042 0.0.0.0:* LISTEN 17630/script/websoc” "tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 17626/puma 6.2.2 ". We are using Nginx as a reverse proxy. The Zammad.conf file also contains the following:
upstream zammad-railsserver {
server 127.0.0.1:3000;
}
upstream zammad-websocket {
server 127.0.0.1:6042;
}
Also “Cable”

action cable

location /cable {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “Upgrade”;
proxy_set_header CLIENT_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
proxy_pass http://zammad-railsserver;
}

Nginx(zammad.conf)

this is the nginx config for zammad

upstream zammad-railsserver {
server 127.0.0.1:3000;
}

upstream zammad-websocket {
server 127.0.0.1:6042;
}

server {
listen 80;
server_name xxxxxxxx.net xxxxxxxxxx.net;
return 301 https://$host$request_uri;

##
  server_tokens off;
  ##

}

server {
listen 443 ssl http2;

server_name xxxxxxxxxxx.net xxxxxxxxxxxx.net;

ssl_certificate /etc/ssl/xxxx/xxxxxxx
ssl_certificate_key /etc/ssl/xxxx/xxxxxxxxx

ssl_protocols       TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers xxxxxxxxx

ssl_dhparam /etc/nginx/xxxxxxxxxx

ssl_ecdh_curve secp384r1;
ssl_session_cache   shared:MozSSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;

# HSTS (ngx_http_headers_module is required) (63072000 seconds)
add_header Strict-Transport-Security "max-age=63072000" always;

# OCSP stapling
ssl_stapling off;
ssl_stapling_verify off;
# verify chain of trust of OCSP response using Root CA and Intermediate certs
#ssl_trusted_certificate /etc/ssl/xxxxxxxxx
root /opt/zammad/public;

access_log /var/log/nginx/zammad.access.log;
error_log  /var/log/nginx/zammad.error.log;

client_max_body_size 50M;

#location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico) {
    #expires max;
location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico|apple-touch-icon.png) {
	expires max;
}

location /ws {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header CLIENT_IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 86400;
    proxy_pass http://zammad-websocket;
}

 # action cable
location /cable {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header CLIENT_IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 86400;
    proxy_pass http://zammad-railsserver;
}

location / {
    proxy_set_header Host $http_host;
    proxy_set_header CLIENT_IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 300;
    proxy_pass http://zammad-railsserver;

    gzip on;
    gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
    gzip_proxied any;
}

}

-Inspecting with Firefox Developer Tools. (See image)


We tried:
-check Nginx conf
-zammad run rake db:seed.
-zammad run rake db:mgirate.
-zammad run rake zammad:package:reinstall_all
-zammad everytime up to date
-reboot Server

Hi @Inline. Please have a look at your production.log. There should be some more information when a 500 error occurs.

THX.
I will check, and post if its okay tommorow.
Thx for your reply

This is the production log, from the moment when we try to open a ticket (in the mobile view). We see the “Error” “ERROR – : wrong number of arguments,” but we can’t make much sense of the information. Do you have any ideas?

I, [2023-08-18T16:06:48.773075#85801-3164560]  INFO -- : Started GET "/api/v1/tickets/5368?all=true&auto_assign=true&_=1691994834287" for xxxxxxxxx at 2023-08-18 16:06:48 +0200
I, [2023-08-18T16:06:48.778455#85801-3164560]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:06:48.778512#85801-3164560]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834287", "id"=>"5368"}
I, [2023-08-18T16:06:49.864249#85812-2980100]  INFO -- : Started PUT "/api/v1/taskbar/43337" for xxxxxxxxxxx at 2023-08-18 16:06:49 +0200
I, [2023-08-18T16:06:49.864506#85810-2811040]  INFO -- : Started GET "/api/v1/tickets/5641?all=true&auto_assign=true&_=1691994834288" for xxxxxxxx at 2023-08-18 16:06:49 +0200
I, [2023-08-18T16:06:49.872337#85810-2811040]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:06:49.872399#85810-2811040]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834288", "id"=>"5641"}
I, [2023-08-18T16:06:49.872982#85812-2980100]  INFO -- : Processing by TaskbarController#update as JSON
I, [2023-08-18T16:06:49.873062#85812-2980100]  INFO -- :   Parameters: {"key"=>"Ticket-4350", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{"form_id"=>"985934539"}}, "params"=>{"ticket_id"=>"4350", "init"=>true}, "prio"=>32, "notify"=>true, "active"=>false, "attachments"=>[], "updated_at"=>"2023-07-25T07:20:59.442Z", "id"=>"43337"}
I, [2023-08-18T16:06:49.908125#85812-2980100]  INFO -- : Completed 200 OK in 35ms (Views: 0.4ms | ActiveRecord: 5.9ms | Allocations: 10822)
I, [2023-08-18T16:06:50.095110#85801-3310680]  INFO -- : Unsubscribing from channel: {"channel":"GraphqlChannel","channelId":"18a08f8c17d"}
I, [2023-08-18T16:06:50.095707#85801-3310680]  INFO -- : GraphqlChannel stopped streaming from graphql-subscription:d6a135d4-8d15-4506-a1c7-a0b90b8a5908
I, [2023-08-18T16:06:50.096099#85801-3310680]  INFO -- : GraphqlChannel stopped streaming from graphql-event::onlineNotificationsCount:userId:gid://zammad/User/8
I, [2023-08-18T16:06:50.106242#85801-3310680]  INFO -- : GraphqlChannel#execute({"query"=>"subscription ticketUpdates($ticketId: ID!) {\n  ticketUpdates(ticketId: $ticketId) {\n    ticket {\n      ...ticketAttributes\n      mentions {\n        totalCount\n        edges {\n          node {\n            ...ticketMention\n            __typename\n          }\n          cursor\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n\nfragment ticketAttributes on Ticket {\n  id\n  internalId\n  number\n  title\n  createdAt\n  escalationAt\n  updatedAt\n  pendingTime\n  owner {\n    id\n    internalId\n    firstname\n    lastname\n    __typename\n  }\n  customer {\n    id\n    internalId\n    firstname\n    lastname\n    fullname\n    image\n    vip\n    active\n    outOfOffice\n    email\n    organization {\n      id\n      internalId\n      name\n      active\n      objectAttributeValues {\n        ...objectAttributeValues\n        __typename\n      }\n      __typename\n    }\n    hasSecondaryOrganizations\n    policy {\n      update\n      __typename\n    }\n    __typename\n  }\n  organization {\n    id\n    internalId\n    name\n    __typename\n  }\n  state {\n    id\n    name\n    stateType {\n      name\n      __typename\n    }\n    __typename\n  }\n  group {\n    id\n    name\n    emailAddress {\n      name\n      emailAddress\n      __typename\n    }\n    __typename\n  }\n  priority {\n    id\n    name\n    defaultCreate\n    uiColor\n    __typename\n  }\n  objectAttributeValues {\n    ...objectAttributeValues\n    __typename\n  }\n  policy {\n    update\n    agentReadAccess\n    __typename\n  }\n  tags\n  subscribed\n  preferences\n  stateColorCode\n  __typename\n}\n\nfragment objectAttributeValues on ObjectAttributeValue {\n  attribute {\n    name\n    display\n    __typename\n  }\n  value\n  renderedLink\n  __typename\n}\n\nfragment ticketMention on Mention {\n  user {\n    id\n    internalId\n    firstname\n    lastname\n    fullname\n    vip\n    outOfOffice\n    active\n    image\n    __typename\n  }\n  __typename\n}", "variables"=>{"ticketId"=>"gid://zammad/Ticket/8307"}, "operationName"=>"ticketUpdates"})
I, [2023-08-18T16:06:50.112824#85812-3034480]  INFO -- : Started POST "/graphql" for xxxxxxxxx at 2023-08-18 16:06:50 +0200
I, [2023-08-18T16:06:50.142020#85801-3310720]  INFO -- : GraphqlChannel#execute({"query"=>"subscription ticketArticleUpdates($ticketId: ID!) {\n  ticketArticleUpdates(ticketId: $ticketId) {\n    addArticle {\n      id\n      createdAt\n      __typename\n    }\n    updateArticle {\n      ...ticketArticleAttributes\n      __typename\n    }\n    removeArticleId\n    __typename\n  }\n}\n\nfragment ticketArticleAttributes on TicketArticle {\n  id\n  internalId\n  from {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  messageId\n  to {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  cc {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  subject\n  replyTo {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  messageId\n  messageIdMd5\n  inReplyTo\n  contentType\n  references\n  attachmentsWithoutInline {\n    internalId\n    name\n    size\n    type\n    preferences\n    __typename\n  }\n  preferences\n  bodyWithUrls\n  internal\n  createdAt\n  author {\n    id\n    fullname\n    firstname\n    lastname\n    email\n    active\n    image\n    vip\n    outOfOffice\n    authorizations {\n      provider\n      uid\n      username\n      __typename\n    }\n    __typename\n  }\n  type {\n    name\n    communication\n    __typename\n  }\n  sender {\n    name\n    __typename\n  }\n  securityState {\n    encryptionMessage\n    encryptionSuccess\n    signingMessage\n    signingSuccess\n    type\n    __typename\n  }\n  __typename\n}", "variables"=>{"ticketId"=>"gid://zammad/Ticket/8307"}, "operationName"=>"ticketArticleUpdates"})
I, [2023-08-18T16:06:50.167074#85801-3312660]  INFO -- : GraphqlChannel is streaming from graphql-event::ticketUpdates:ticketId:gid://zammad/Ticket/8307
I, [2023-08-18T16:06:50.167180#85801-3312620]  INFO -- : GraphqlChannel is streaming from graphql-subscription:61b1d985-0b20-4839-b19f-ba01321c46f6
I, [2023-08-18T16:06:50.171939#85801-3312660]  INFO -- : GraphqlChannel is streaming from graphql-subscription:b4f4a36d-a540-4bf8-8547-0bfdf0823fed
I, [2023-08-18T16:06:50.172023#85801-3312620]  INFO -- : GraphqlChannel is streaming from graphql-event::ticketArticleUpdates:ticketId:gid://zammad/Ticket/8307
I, [2023-08-18T16:06:50.205355#85801-3164560]  INFO -- : Completed 200 OK in 1427ms (Views: 18.3ms | ActiveRecord: 44.7ms | Allocations: 606931)
I, [2023-08-18T16:06:50.362546#85812-3034480]  INFO -- : Processing by GraphqlController#execute as */*
I, [2023-08-18T16:06:50.362769#85812-3034480]  INFO -- :   Parameters: {"_json"=>[{"operationName"=>"ticket", "variables"=>{"ticketId"=>"gid://zammad/Ticket/8307", "mentionsCount"=>5}, "query"=>"query ticket($ticketId: ID, $ticketInternalId: Int, $ticketNumber: String, $mentionsCount: Int) {\n  ticket(\n    ticket: {ticketId: $ticketId, ticketInternalId: $ticketInternalId, ticketNumber: $ticketNumber}\n  ) {\n    ...ticketAttributes\n    createArticleType {\n      id\n      name\n      __typename\n    }\n    mentions(first: $mentionsCount) {\n      totalCount\n      edges {\n        node {\n          ...ticketMention\n          __typename\n        }\n        cursor\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n\nfragment ticketAttributes on Ticket {\n  id\n  internalId\n  number\n  title\n  createdAt\n  escalationAt\n  updatedAt\n  pendingTime\n  owner {\n    id\n    internalId\n    firstname\n    lastname\n    __typename\n  }\n  customer {\n    id\n    internalId\n    firstname\n    lastname\n    fullname\n    image\n    vip\n    active\n    outOfOffice\n    email\n    organization {\n      id\n      internalId\n      name\n      active\n      objectAttributeValues {\n        ...objectAttributeValues\n        __typename\n      }\n      __typename\n    }\n    hasSecondaryOrganizations\n    policy {\n      update\n      __typename\n    }\n    __typename\n  }\n  organization {\n    id\n    internalId\n    name\n    __typename\n  }\n  state {\n    id\n    name\n    stateType {\n      name\n      __typename\n    }\n    __typename\n  }\n  group {\n    id\n    name\n    emailAddress {\n      name\n      emailAddress\n      __typename\n    }\n    __typename\n  }\n  priority {\n    id\n    name\n    defaultCreate\n    uiColor\n    __typename\n  }\n  objectAttributeValues {\n    ...objectAttributeValues\n    __typename\n  }\n  policy {\n    update\n    agentReadAccess\n    __typename\n  }\n  tags\n  subscribed\n  preferences\n  stateColorCode\n  __typename\n}\n\nfragment objectAttributeValues on ObjectAttributeValue {\n  attribute {\n    name\n    display\n    __typename\n  }\n  value\n  renderedLink\n  __typename\n}\n\nfragment ticketMention on Mention {\n  user {\n    id\n    internalId\n    firstname\n    lastname\n    fullname\n    vip\n    outOfOffice\n    active\n    image\n    __typename\n  }\n  __typename\n}"}, {"operationName"=>"objectManagerFrontendAttributes", "variables"=>{"object"=>"Ticket"}, "query"=>"query objectManagerFrontendAttributes($object: EnumObjectManagerObjects!) {\n  objectManagerFrontendAttributes(object: $object) {\n    attributes {\n      name\n      display\n      dataType\n      dataOption\n      isInternal\n      screens\n      __typename\n    }\n    screens {\n      name\n      attributes\n      __typename\n    }\n    __typename\n  }\n}"}, {"operationName"=>"ticketLiveUserUpsert", "variables"=>{"id"=>"gid://zammad/Ticket/8307", "editing"=>false, "app"=>"mobile"}, "query"=>"mutation ticketLiveUserUpsert($id: ID!, $app: EnumTaskbarApp!, $editing: Boolean!) {\n  ticketLiveUserUpsert(id: $id, app: $app, editing: $editing) {\n    success\n    errors {\n      ...errors\n      __typename\n    }\n    __typename\n  }\n}\n\nfragment errors on UserError {\n  message\n  field\n  __typename\n}"}, {"operationName"=>"ticketArticles", "variables"=>{"loadDescription"=>true, "ticketId"=>"gid://zammad/Ticket/8307", "pageSize"=>5}, "query"=>"query ticketArticles($ticketId: ID, $ticketInternalId: Int, $ticketNumber: String, $beforeCursor: String, $afterCursor: String, $pageSize: Int, $loadDescription: Boolean = true) {\n  description: ticketArticles(\n    ticket: {ticketId: $ticketId, ticketInternalId: $ticketInternalId, ticketNumber: $ticketNumber}\n    first: 1\n  ) @include(if: $loadDescription) {\n    edges {\n      node {\n        ...ticketArticleAttributes\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n  articles: ticketArticles(\n    ticket: {ticketId: $ticketId, ticketInternalId: $ticketInternalId, ticketNumber: $ticketNumber}\n    before: $beforeCursor\n    after: $afterCursor\n    last: $pageSize\n  ) {\n    totalCount\n    edges {\n      node {\n        ...ticketArticleAttributes\n        __typename\n      }\n      cursor\n      __typename\n    }\n    pageInfo {\n      endCursor\n      startCursor\n      hasPreviousPage\n      __typename\n    }\n    __typename\n  }\n}\n\nfragment ticketArticleAttributes on TicketArticle {\n  id\n  internalId\n  from {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  messageId\n  to {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  cc {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  subject\n  replyTo {\n    raw\n    parsed {\n      name\n      emailAddress\n      isSystemAddress\n      __typename\n    }\n    __typename\n  }\n  messageId\n  messageIdMd5\n  inReplyTo\n  contentType\n  references\n  attachmentsWithoutInline {\n    internalId\n    name\n    size\n    type\n    preferences\n    __typename\n  }\n  preferences\n  bodyWithUrls\n  internal\n  createdAt\n  author {\n    id\n    fullname\n    firstname\n    lastname\n    email\n    active\n    image\n    vip\n    outOfOffice\n    authorizations {\n      provider\n      uid\n      username\n      __typename\n    }\n    __typename\n  }\n  type {\n    name\n    communication\n    __typename\n  }\n  sender {\n    name\n    __typename\n  }\n  securityState {\n    encryptionMessage\n    encryptionSuccess\n    signingMessage\n    signingSuccess\n    type\n    __typename\n  }\n  __typename\n}"}]}
E, [2023-08-18T16:06:50.414709#85812-3034480] ERROR -- : wrong number of arguments (given 2, expected 1) (ArgumentError)
app/graphql/gql/fields/base_field.rb:15:in `resolve'
app/controllers/graphql_controller.rb:38:in `multiplex'
app/controllers/graphql_controller.rb:17:in `execute'
app/controllers/application_controller/has_download.rb:21:in `block (4 levels) in <module:HasDownload>'
app/controllers/application_controller/has_download.rb:20:in `block (3 levels) in <module:HasDownload>'
app/controllers/application_controller/has_download.rb:19:in `block (2 levels) in <module:HasDownload>'
app/controllers/application_controller/handles_transitions.rb:16:in `handle_transaction'
I, [2023-08-18T16:06:50.418648#85812-3034480]  INFO -- : Completed 422 Unprocessable Entity in 56ms (Views: 0.2ms | ActiveRecord: 6.1ms | Allocations: 25820)
I, [2023-08-18T16:06:50.490635#85801-3310720]  INFO -- : Unsubscribing from channel: {"channel":"GraphqlChannel","channelId":"18a08f9bb6c"}
I, [2023-08-18T16:06:50.491148#85801-3310720]  INFO -- : GraphqlChannel stopped streaming from graphql-subscription:61b1d985-0b20-4839-b19f-ba01321c46f6
I, [2023-08-18T16:06:50.491556#85801-3310720]  INFO -- : GraphqlChannel stopped streaming from graphql-event::ticketUpdates:ticketId:gid://zammad/Ticket/8307
I, [2023-08-18T16:06:50.491846#85801-3310680]  INFO -- : Unsubscribing from channel: {"channel":"GraphqlChannel","channelId":"18a08f910f1"}
I, [2023-08-18T16:06:50.492357#85801-3310680]  INFO -- : GraphqlChannel stopped streaming from graphql-subscription:b4f4a36d-a540-4bf8-8547-0bfdf0823fed
I, [2023-08-18T16:06:50.492493#85801-3310680]  INFO -- : GraphqlChannel stopped streaming from graphql-event::ticketArticleUpdates:ticketId:gid://zammad/Ticket/8307
I, [2023-08-18T16:06:50.512882#85812-3033220]  INFO -- : Started POST "/graphql" for xxxxxxxxx at 2023-08-18 16:06:50 +0200
I, [2023-08-18T16:06:50.517890#85812-3033220]  INFO -- : Processing by GraphqlController#execute as */*
I, [2023-08-18T16:06:50.517959#85812-3033220]  INFO -- :   Parameters: {"_json"=>[{"operationName"=>"ticketLiveUserDelete", "variables"=>{"id"=>"gid://zammad/Ticket/8307", "app"=>"mobile"}, "query"=>"mutation ticketLiveUserDelete($id: ID!, $app: EnumTaskbarApp!) {\n  ticketLiveUserDelete(id: $id, app: $app) {\n    success\n    errors {\n      ...errors\n      __typename\n    }\n    __typename\n  }\n}\n\nfragment errors on UserError {\n  message\n  field\n  __typename\n}"}]}
I, [2023-08-18T16:06:50.539982#85812-3033220]  INFO -- : Completed 200 OK in 22ms (Views: 0.2ms | ActiveRecord: 5.1ms | Allocations: 8028)
I, [2023-08-18T16:06:51.023531#85812-2980060]  INFO -- : Started PUT "/api/v1/taskbar/44054" for xxxxxxxxxx at 2023-08-18 16:06:51 +0200
I, [2023-08-18T16:06:51.023559#85804-2610220]  INFO -- : Started GET "/api/v1/tickets/5747?all=true&auto_assign=true&_=1691994834289" for xxxxxxxxxxx at 2023-08-18 16:06:51 +0200
I, [2023-08-18T16:06:51.028672#85804-2610220]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:06:51.028734#85804-2610220]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834289", "id"=>"5747"}
I, [2023-08-18T16:06:51.029964#85812-2980060]  INFO -- : Processing by TaskbarController#update as JSON
I, [2023-08-18T16:06:51.030049#85812-2980060]  INFO -- :   Parameters: {"key"=>"Ticket-4412", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{"form_id"=>"354579711"}}, "params"=>{"ticket_id"=>"4412", "init"=>true}, "prio"=>34, "notify"=>false, "active"=>false, "attachments"=>[], "updated_at"=>"2023-07-25T07:20:58.387Z", "id"=>"44054"}
I, [2023-08-18T16:06:51.064393#85812-2980060]  INFO -- : Completed 200 OK in 34ms (Views: 0.4ms | ActiveRecord: 7.8ms | Allocations: 10822)
I, [2023-08-18T16:06:51.201546#85810-2811040]  INFO -- : Completed 200 OK in 1329ms (Views: 18.2ms | ActiveRecord: 36.3ms | Allocations: 592886)
I, [2023-08-18T16:06:52.178961#85801-3022880]  INFO -- : Started GET "/api/v1/tickets/2692?all=true&auto_assign=true&_=1691994834290" for xxxxxxxxxxx at 2023-08-18 16:06:52 +0200
I, [2023-08-18T16:06:52.184408#85801-3022880]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:06:52.184465#85801-3022880]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834290", "id"=>"2692"}
I, [2023-08-18T16:06:52.530394#85804-2610220]  INFO -- : Completed 200 OK in 1502ms (Views: 21.8ms | ActiveRecord: 42.2ms | Allocations: 603592)
I, [2023-08-18T16:06:52.868871#85707-112200]  INFO -- : ProcessScheduledJobs running...
I, [2023-08-18T16:06:52.871137#85707-112200]  INFO -- : Running job thread for 'Check channels.' (Channel.fetch) status is: sleep
I, [2023-08-18T16:06:52.871340#85707-112200]  INFO -- : Running job thread for 'Check 'Channel' streams.' (Channel.stream) status is: sleep
I, [2023-08-18T16:06:52.871377#85707-112200]  INFO -- : Running job thread for 'Generate 'Session' data.' (Sessions.jobs) status is: sleep
I, [2023-08-18T16:06:52.871472#85707-112200]  INFO -- : Running job thread for 'Process ticket escalations.' (Ticket.process_escalation) status is: sleep
I, [2023-08-18T16:06:52.873164#85707-112200]  INFO -- : Running job thread for 'Execute planned jobs.' (Job.run) status is: sleep
I, [2023-08-18T16:06:53.646659#85801-3022880]  INFO -- : Completed 200 OK in 1462ms (Views: 321.0ms | ActiveRecord: 44.5ms | Allocations: 625867)
I, [2023-08-18T16:06:53.663372#85801-3132440]  INFO -- : Started GET "/api/v1/tickets/5957?all=true&auto_assign=true&_=1691994834291" for xxxxxxxxxxx at 2023-08-18 16:06:53 +0200
I, [2023-08-18T16:06:53.668907#85801-3132440]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:06:53.668969#85801-3132440]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834291", "id"=>"5957"}
I, [2023-08-18T16:06:54.807267#85801-3132440]  INFO -- : Completed 200 OK in 1138ms (Views: 18.1ms | ActiveRecord: 37.6ms | Allocations: 584651)
I, [2023-08-18T16:06:55.936893#85812-3032960]  INFO -- : Started GET "/api/v1/tickets/5996?all=true&auto_assign=true&_=1691994834292" for xxxxxxxxxxx at 2023-08-18 16:06:55 +0200
I, [2023-08-18T16:06:55.942236#85812-3032960]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:06:55.942291#85812-3032960]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834292", "id"=>"5996"}
I, [2023-08-18T16:06:57.039358#85812-3032960]  INFO -- : Completed 200 OK in 1097ms (Views: 17.6ms | ActiveRecord: 35.7ms | Allocations: 587840)
I, [2023-08-18T16:06:59.258838#85812-2980100]  INFO -- : Started GET "/api/v1/tickets/6212?all=true&auto_assign=true&_=1691994834293" for xxxxxxxxxxx at 2023-08-18 16:06:59 +0200
I, [2023-08-18T16:06:59.264224#85812-2980100]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:06:59.264285#85812-2980100]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834293", "id"=>"6212"}
I, [2023-08-18T16:07:00.349961#85801-3164500]  INFO -- : Started PUT "/api/v1/taskbar/52862" for xxxxxxxxxxx at 2023-08-18 16:07:00 +0200
I, [2023-08-18T16:07:00.355494#85801-3164500]  INFO -- : Processing by TaskbarController#update as JSON
I, [2023-08-18T16:07:00.355573#85801-3164500]  INFO -- :   Parameters: {"key"=>"Ticket-5368", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{"form_id"=>"670027585"}}, "params"=>{"ticket_id"=>"5368", "init"=>true}, "prio"=>37, "notify"=>false, "active"=>false, "attachments"=>[], "updated_at"=>"2023-04-12T06:13:02.016Z", "id"=>"52862"}
I, [2023-08-18T16:07:00.384508#85801-3164500]  INFO -- : Completed 200 OK in 29ms (Views: 0.4ms | ActiveRecord: 5.6ms | Allocations: 10794)
I, [2023-08-18T16:07:00.564233#85812-2980100]  INFO -- : Completed 200 OK in 1300ms (Views: 16.1ms | ActiveRecord: 35.4ms | Allocations: 584764)
I, [2023-08-18T16:07:01.496694#85812-3034480]  INFO -- : Started PUT "/api/v1/taskbar/55561" for xxxxxxxxxxx at 2023-08-18 16:07:01 +0200
I, [2023-08-18T16:07:01.498036#85804-2174460]  INFO -- : Started GET "/api/v1/tickets/6716?all=true&auto_assign=true&_=1691994834294" for xxxxxxxxxxx at 2023-08-18 16:07:01 +0200
I, [2023-08-18T16:07:01.502131#85812-3034480]  INFO -- : Processing by TaskbarController#update as JSON
I, [2023-08-18T16:07:01.502212#85812-3034480]  INFO -- :   Parameters: {"key"=>"Ticket-5641", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{"form_id"=>"181369941"}}, "params"=>{"ticket_id"=>"5641", "init"=>true}, "prio"=>38, "notify"=>false, "active"=>false, "attachments"=>[], "updated_at"=>"2023-07-11T07:41:34.554Z", "id"=>"55561"}
I, [2023-08-18T16:07:01.503341#85804-2174460]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:07:01.503397#85804-2174460]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834294", "id"=>"6716"}
I, [2023-08-18T16:07:01.531204#85812-3034480]  INFO -- : Completed 200 OK in 29ms (Views: 0.4ms | ActiveRecord: 5.3ms | Allocations: 10792)
I, [2023-08-18T16:07:02.644904#85810-2767960]  INFO -- : Started PUT "/api/v1/taskbar/56845" for xxxxxxxxx at 2023-08-18 16:07:02 +0200
I, [2023-08-18T16:07:02.645208#85812-3033220]  INFO -- : Started GET "/api/v1/tickets/6788?all=true&auto_assign=true&_=1691994834295" for xxxxxxxxxxx at 2023-08-18 16:07:02 +0200
I, [2023-08-18T16:07:02.645237#85801-3050980]  INFO -- : Started GET "/api/v1/tickets/6893?all=true&auto_assign=true&_=1691994834296" for xxxxxxxxxxx at 2023-08-18 16:07:02 +0200
I, [2023-08-18T16:07:02.650308#85801-3050980]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:07:02.650367#85801-3050980]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834296", "id"=>"6893"}
I, [2023-08-18T16:07:02.650302#85812-3033220]  INFO -- : Processing by TicketsController#show as JSON
I, [2023-08-18T16:07:02.650445#85812-3033220]  INFO -- :   Parameters: {"all"=>"true", "auto_assign"=>"true", "_"=>"1691994834295", "id"=>"6788"}
I, [2023-08-18T16:07:02.650604#85810-2767960]  INFO -- : Processing by TaskbarController#update as JSON
I, [2023-08-18T16:07:02.650758#85810-2767960]  INFO -- :   Parameters: {"key"=>"Ticket-5747", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{"form_id"=>"066514275"}}, "params"=>{"ticket_id"=>"5747", "init"=>true}, "prio"=>39, "notify"=>true, "active"=>false, "attachments"=>[], "updated_at"=>"2023-07-11T07:41:30.298Z", "id"=>"56845"}
I, [2023-08-18T16:07:02.680913#85810-2767960]  INFO -- : Completed 200 OK in 30ms (Views: 0.4ms | ActiveRecord: 5.3ms | Allocations: 10791)
I, [2023-08-18T16:07:02.831525#85804-2174460]  INFO -- : Completed 200 OK in 1328ms (Views: 17.5ms | ActiveRecord: 36.1ms | Allocations: 589715)
I, [2023-08-18T16:07:02.873488#85707-112200]  INFO -- : ProcessScheduledJobs running...
I, [2023-08-18T16:07:02.875182#85707-112200]  INFO -- : Running job thread for 'Check channels.' (Channel.fetch) status is: sleep
I, [2023-08-18T16:07:02.875343#85707-112200]  INFO -- : Running job thread for 'Check 'Channel' streams.' (Channel.stream) status is: sleep
I, [2023-08-18T16:07:02.875379#85707-112200]  INFO -- : Running job thread for 'Generate 'Session' data.' (Sessions.jobs) status is: sleep
I, [2023-08-18T16:07:02.875474#85707-112200]  INFO -- : Running job thread for 'Process ticket escalations.' (Ticket.process_escalation) status is: sleep
I, [2023-08-18T16:07:02.876772#85707-112200]  INFO -- : Running job thread for 'Execute planned jobs.' (Job.run) status is: sleep
I, [2023-08-18T16:07:03.797351#85804-2589740]  INFO -- : Started PUT "/api/v1/taskbar/58635" for xxxxxxxxxxx at 2023-08-18 16:07:03 +0200
I, [2023-08-18T16:07:03.802820#85804-2589740]  INFO -- : Processing by TaskbarController#update as JSON
I, [2023-08-18T16:07:03.802900#85804-2589740]  INFO -- :   Parameters: {"key"=>"Ticket-2692", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{"form_id"=>"066380395"}}, "params"=>{"ticket_id"=>"2692", "init"=>true}, "prio"=>40, "notify"=>true, "active"=>false, "attachments"=>[], "updated_at"=>"2023-07-25T07:21:01.555Z", "id"=>"58635"}
I, [2023-08-18T16:07:03.832569#85804-2589740]  INFO -- : Completed 200 OK in 30ms (Views: 0.5ms | ActiveRecord: 5.5ms | Allocations: 10821)
I, [2023-08-18T16:07:03.988217#85801-3050980]  INFO -- : Completed 200 OK in 1338ms (Views: 17.4ms | ActiveRecord: 36.0ms | Allocations: 588956)
I, [2023-08-18T16:07:03.991942#85812-3033220]  INFO -- : Completed 200 OK in 1341ms (Views: 29.1ms | ActiveRecord: 37.8ms | Allocations: 595118)
I, [2023-08-18T16:07:04.891933#85804-2046100]  INFO -- : Started PUT "/api/v1/taskbar/59232" for xxxxxxxxxxx at 2023-08-18 16:07:04 +0200
I, [2023-08-18T16:07:04.897412#85804-2046100]  INFO -- : Processing by TaskbarController#update as JSON
I, [2023-08-18T16:07:04.897492#85804-2046100]  INFO -- :   Parameters: {"key"=>"Ticket-5957", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{"form_id"=>"943765762"}}, "params"=>{"ticket_id"=>"5957", "init"=>true}, "prio"=>41, "notify"=>true, "active"=>false, "attachments"=>[], "updated_at"=>"2023-07-25T07:20:48.864Z", "id"=>"59232"}
I, [2023-08-18T16:07:04.927279#85804-2046100]  INFO -- : Completed 200 OK in 30ms (Views: 0.4ms | ActiveRecord: 5.5ms | Allocations: 10785)

@Inline please ping me by a private message, you can also write in German to me if this makes it easier.

Maybe you can check if the GraphQL-Queries are working when you are using the GraphQL-API directly via a tool like Postman or Insomia (or any other Tool in this direction) - (POST on https://xxxx.xxxxxxx.net/graphql)

Example-Query:

query {
description: ticketArticles(
    ticket: {ticketId: "gid://zammad/Ticket/8307"},
    first: 1
  ) @include(if: true) {
    edges {
      node {
        id
        internalId
        from {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        messageId
        to {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        cc {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        subject
        replyTo {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        messageId
        messageIdMd5
        inReplyTo
        contentType
        references
        attachmentsWithoutInline {
          internalId
          name
          size
          type
          preferences
          __typename
        }
        preferences
        bodyWithUrls
        internal
        createdAt
        author {
          id
          fullname
          firstname
          lastname
          email
          active
          image
          vip
          outOfOffice
          authorizations {
            provider
            uid
            username
            __typename
          }
          __typename
        }
        type {
          name
          communication
          __typename
        }
        sender {
          name
          __typename
        }
        securityState {
          encryptionMessage
          encryptionSuccess
          signingMessage
          signingSuccess
          type
          __typename
        }
        __typename
      }
      __typename
    }
    __typename
  }
  articles: ticketArticles(
    ticket: {ticketId: "gid://zammad/Ticket/8307"},
    last: 5
  ) {
    totalCount
    edges {
      node {
        id
        internalId
        from {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        messageId
        to {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        cc {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        subject
        replyTo {
          raw
          parsed {
            name
            emailAddress
            isSystemAddress
            __typename
          }
          __typename
        }
        messageId
        messageIdMd5
        inReplyTo
        contentType
        references
        attachmentsWithoutInline {
          internalId
          name
          size
          type
          preferences
          __typename
        }
        preferences
        bodyWithUrls
        internal
        createdAt
        author {
          id
          fullname
          firstname
          lastname
          email
          active
          image
          vip
          outOfOffice
          authorizations {
            provider
            uid
            username
            __typename
          }
          __typename
        }
        type {
          name
          communication
          __typename
        }
        sender {
          name
          __typename
        }
        securityState {
          encryptionMessage
          encryptionSuccess
          signingMessage
          signingSuccess
          type
          __typename
        }
        __typename
      }
      cursor
      __typename
    }
    pageInfo {
      endCursor
      startCursor
      hasPreviousPage
      __typename
    }
    __typename
  }
}

(You could use a API-Token for this Profile & Settings — Zammad (for Agents) documentation)

1 Like

@dominikklein thank you for the suggestion.

I tried to POST your example query to our zammad installation using Postman by doing the following:

  1. change method to POST and enter the FQDN + /graphql
  2. adding Headers:
  • Content-Type = “application/json”
  • Authorization = “Token token=[API-Token]”
  1. under “body” select “GraphQL” and paste your example query

I hope this was correct.

The response is exactly the same as when we open a ticket on the mobile site:

Is there anything else we can try? It seems like our GraphQL has an issue.

Ok, this is very strange, but better for debugging, maybe you can check it with a simple query:

query {
	ticket(ticket: {ticketId: "gid://zammad/Ticket/8307"}) {
		id
		title
	}
}
1 Like

Even with this short query I get the same error

If I try with a random string that doesnt exist in the database, I get 200 OK, so the POST itself seems to work:

Did you already try to set up a new test system with the same configuration, but without the existing data?

We didn’t see such an issue on other systems, so it’s challenging to say something about that without debugging the problem.

Hey guys,

we set up a new test system by cloning the vm where our live system is hosted. Then we purged the database completly and uninstalled zammad & elastic search. We also cleaned all folders (opt/zammad), after that we reinstalled zammad.

Then the mobile view works fine.

When we import a database backup from our live system into the test system we get the error again.

Seems like our database has an issue.
Since we have around ~50 “Objects”, “Trigger” & “Core Worksflows” in zammad, we already tried deleting them all and refreshing the database, but no success. Also we tried using the following commands:

  • zammad run rails r ‘Rails.cache.clear’
  • zammad run rake db:seed
  • zammad run rake db:mgirate

Is it possible to import only our settings from the database, but not the data like tickets / users / organisations, so we can analyse the issue?

How can we compare our database structure to a freshly installed database?

How else can we try to debug / fix our database?

Looks like it’s related to the tickets → article table.

You can try to add some debug code inside

app/graphql/gql/queries/ticket.rb:

    def resolve(ticket:)
      Rails.logger.error "Fetching ticket data for ticket #{ticket.inspect}"
      ticket
    end

Then you could execute the simple GraphQL for fetching a ticket and check the log.

Hi Dominik,

thank you for your suggestion.

We were able to identify the issue ourselves. There were some old Ticket - “Objects” still present in our “tickets” table in our Postgresql database. We deleted those some time ago from the website, but they were still present in the database. After deleting the columns from the table, our error was gone. Here’s how we did if someone else has the same issue:

  1. (this step is done to identify the columns that were not deleted correcty) setup test-system, import live database, manually delete all “Objects” we created in the settings in the test-system. Now, we can look for custom “Objects” columns in the table “tickets”.
  2. stop zammad service:
  • systemctl stop zammad.service
  1. connect to database:
  • su zammad
  • psql
  1. check columns of the table “tickets” using: “\d+ tickets;” Look for custom created Objects, write down the column-names.
  2. delete the columns using “ALTER TABLE tickets DROP COLUMN [column_name]”
  3. restart zammad service:
  • systemctl start zammad.service

If the issue is gone on the test-system, you can do the same on the live-system.

Thanks to the support for the help :slight_smile:

Dear future anon finding above solution.
Please note that direct manipulation in Zammads database is potentially dangerous and may lead to data loss.

Proceed with absolute care and have a backup ready.

1 Like

Thanks for the findings, we will check, if we can improve the “special” situation.

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