Перейти к основному содержимому

FAQ / Troubleshooting

Ошибка "CreateUser: User limit by license"

Ответ

Полный текст ошибки:

failed to execute cancelable worker.
See logs for more details — CreateUser: User limit by license.

Please contact your System Administrator.

В процессе импорта в Time добавляются в т.ч. пользователи, это может привести к исчерпанию лимита лицензии. Стоит отметить, что импортируются и учитываются все пользователи: users, deactivated users, bots.

Решение: обратитесь к вендору и запросите расширение лицензии.

Ошибка "Post.IsValid: Invalid message"

Ответ

Полный текст ошибки:

failed to execute cancelable worker. See logs for more details — Post.IsValid: Invalid message., id=6erfnwrhyiyfbptozr7px5ji7e

Скорее всего ошибка возникает из-за того, что длина сообщения превышает допустимое значение.

Решение: увеличьте параметр (ENV-переменная для time-server) TIME_SERVICESETTINGS_MAXPOSTSIZE (укажите необходимое количество символов).

При выполнении импорта в Time как-то можно контролировать в консоли выполнения скрипта?

Ответ

Нет, такая возможность отсутствует.

На данный момент проверять состояние можно только периодическим просмотром выполнения джобы командой (см. Импорт данных в Time) или проверять наполнение базы данных sql-запросом.

Как остановить процесс импорта?

Ответ

Решение: сделать вызов Time API:

POST /api/v4/jobs/{job_id}/cancel

где:

  • job_id — идентификатор джобы импорта (идентификатор пишется в лог при вызове команды timectl import process).

Как возобновить процесс импорта в случае ошибки?

Ответ

Решение: сделать вызов Time API:

POST /api/v4/jobs/{job_id}/rerun

где:

  • job_id — идентификатор джобы импорта (идентификатор пишется в лог при вызове команды timectl import process).

Как пропустить все ошибки?

Ответ

Есть возможность пропустить все возникающие при импорте ошибки и не останавливать из-за них процесс импорта. Для этого активируйте параметр: TIME_IMPORTSETTINGS_ENFORCESKIPERROR: true.

примечание

Для изменения параметра в SaaS инсталляции Time обратитесь в техническую поддержку.

warning

Включайте этот параметр с осторожностью, потому что в случае возникновения проблем (БД, сеть и другие сервисы) может не импортироваться много данных, при этом джоба будет в статусе успешного завершения. Все ошибки вы сможете увидеть в логах по ключевой фразе import error.

Как происходит маппинг пользователей, каналов и сообщений при импорте?

Ответ
  1. Пользователи — сопоставляются по username. Если пользователь с таким username существует, то при импорте обновятся данными из Slack.
  2. Каналы — сопоставляются по названию канала и команде, которая была указана при запуске трансформации. Если название канала на кириллице, то в качестве мечта берется идентификатор канала в Slack.
  3. Сообщения — сопоставляются по каналу и времени создания сообщения. Если канал с таким названием существует в Time, то сообщения будут попадать в него.

Можно ли импортировать отдельные каналы?

Ответ

Да, для этого нужно сформировать отдельный jsonl-файл (например, new_data.jsonl):

  1. Создать новый jsonl-файл импорта.
  2. Добавить в новый файл строку echo {"type":"version","version":1} >> new_data.jsonl.
  3. Переместить все строки с каналом из старого файла импорта в новый: grep '"type":"channel"' data.jsonl | grep '"name":"{channel_name}"' >> new_data.jsonl.
  4. Переместить все сообщения из старого файла в новый: grep '"type":"post"' data.jsonl | grep '"channel":"{channel_name}"' >> new_data.jsonl.

Пользователи импортировались со способом авторизации через email, но в Slack они авторизовались через SSO

Ответ

Для массовой смены способа авторизации с email на ldap, saml или openid нужно вызвать timectl и следовать инструкциям в консоли:

timectl user migrate-auth -h

Ошибка "Unable to upload file. File is too large"

Ответ

Решение: необходимо увеличить в time-server лимит на размер загружаемого файла, это можно сделать с помощью параметра TIME_FILESETTINGS_MAXFILESIZE (ENV-переменная для time-server).

Также, в случае если запросы на добавление файла идут через nginx, то нужно увеличить лимит и там: параметр client_max_body_size.

Ошибка "importUser: An account with that email already exists"

Ответ

Полный текст ошибки:

importUser: An account with that email already exists., 
invalid input: entity: User field: email value: {email}

Решение:

  1. Найти пользователя по email в БД Time

  2. Найти пользователя по email в файле data.jsonl:

    grep {email} data.jsonl
  3. Изменить username пользователя в Time из того, что нашли в п.2:

    UPDATE users SET username = '{new_username}' WHERE email = '{email}'