> ## Documentation Index
> Fetch the complete documentation index at: https://nexohub.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Устранение неполадок

> Частые сообщения и что с ними делать.

<Tip>
  `/nexohub doctor` выполняет большинство приведённых ниже проверок за один раз. Начните с
  него.
</Tip>

## Сервер отображается как `stale`

Пустой сервер — не причина. Бэкенды отчитываются сами, так что сервер, на котором никого
нет, всё равно показывает, что у него есть. Проверяйте в таком порядке:

<Steps>
  <Step title="Он запущен?">
    Бэкенд, который выключен или не имеет моста, отображается как `never reported`, а
    не `stale`.
  </Step>

  <Step title="Секрет правильный?">
    В логе бэкенда написано `Hub rejected the request: wrong hub.secret in config.yml`.
    Скопируйте его заново с прокси.
  </Step>

  <Step title="Имя правильное?">
    Если вы задали `server_name` вручную, оно должно точно совпадать со списком серверов
    вашего прокси. Бэкенд, на котором ни разу не было игрока и у которого не задано имя,
    не может запросить свои файлы.
  </Step>

  <Step title="Он может достучаться до прокси?">
    `Could not reach the hub` означает файрвол или неправильный `hub.address`. Если на
    прокси задан `http.api_address`, бэкенд должен указывать на этот порт.
  </Step>

  <Step title="Опрос выключен?">
    `poll_seconds: 0` означает, что этот бэкенд синхронизируется только пока на нём
    кто-то есть. В его логе при запуске написано `Polling is off`.
  </Step>
</Steps>

## `last reload failed` на сервере, который выглядит нормально

```
last reload failed: Nexo produced no pack within 60s of the reload.
```

Сборка пака заняла больше 60 секунд. Большие паки, медленные диски и загруженные старты —
всё это к этому приводит. Увеличьте таймаут на прокси:

```yaml theme={null}
defaults:
  reload_timeout_seconds: 180
```

Если пак собирается за секунды, а вы всё равно это видите, что-то действительно пошло не
так. Часть сообщения `Nexo said:` — это то, что Nexo напечатал во время работы, и обычно
там сказано, что именно.

<Note>
  Чистая перезагрузка означает, что пак был собран. Она не означает, что у Nexo не было
  жалоб по пути, поскольку NexoHub не может отличить ошибку от строки прогресса в
  собственном выводе Nexo. Если что-то по-прежнему выглядит неправильно, прочитайте
  консоль этого бэкенда.
</Note>

## Ничего не отправлено, файлы не парсятся

```
[NexoHub] Nothing was pushed: 1 file(s) do not parse.
  _shared/items/swords.yml line 14: could not find expected ':'
```

Работает как задумано. Ничего не отправляется, так что ваши бэкенды продолжают работать
на последнем рабочем наборе. Исправьте файл и сохраните снова.

Если строка выглядит нормально, проверьте строку над ней. Ошибки YAML сообщаются там,
где парсер сдался, что часто на одну строку позже.

## Бэкенды расходятся в версиях

```
backends disagree on versions (lobby, smp on Nexo 1.26.0; pvp on Nexo 1.25.1)
```

Разные версии Nexo или Minecraft собирают разные паки из одних и тех же файлов, так что
игроки заново скачивают пак при переходе. Обновите отстающий сервер.

## Игроки не получают пак

Запустите `/nexohub doctor`.

При хостинге по умолчанию пак раздаётся внешним хостом, и doctor об этом сообщает:

```
note pack hosting is delegated to HERMES, so public_address is unused
```

Тогда адрес — не ваша проблема, переходите к разделам ниже.

При `packs.host: proxy` doctor запрашивает ваш адрес снаружи:

```
bad  nothing answered at http://your.proxy:8085; check the address, port and firewall
bad  public_address points at localhost, so only this machine can download the pack
```

Он должен работать из интернета, а не только из вашей собственной сети. Откройте его в
браузере: должна начаться загрузка.

## `Invalid PackServer type specified: HUB`

Nexo запустился раньше, чем мост успел зарегистрироваться. Проверьте, что
`NexoHubBridge.jar` находится в `plugins/` этого бэкенда, и посмотрите чуть выше этой
строки — там будет собственная ошибка моста.

Nexo продолжает работу без пак-сервера, так что игрокам не отправляется ничего
сломанного.

## `NexoHubBridge is inactive: hub.secret is not set`

Скопируйте `secret` из `config.yml` прокси в конфиг этого бэкенда и перезапустите. Он
одинаковый на каждом бэкенде.

Пока вы этого не сделаете, этот бэкенд не трогает раздачу паков Nexo, вместо того чтобы
перехватывать её наполовину, так что игроки там не получают пак. Остальная сеть в
порядке.

## `players will not be able to download it`

Прокси был недоступен или отклонил загрузку, поэтому вместо сломанной ссылки не было
отправлено ничего. Проверьте, что прокси запущен и что `hub.address` и `hub.secret`
верны. Повторная попытка будет при следующей перезагрузке.

## `The hub has no Nexo files of its own, so nothing was swept`

Нормально сразу после установки на прокси. Ничего не сломалось и ничего не потеряно.
Хаб, у которого пусто в `nexo-data/`, никогда не трактуется как «удалить файлы этого
бэкенда», даже если его бандл уже несёт сгенерированный вывод других бэкендов или общие
исходники плагинов.

Сделайте одну из двух вещей, о которых говорит сообщение: `/nexohub adopt <server>`,
чтобы заполнить его с бэкенда, которому вы доверяете, или сами положите файлы в
`nexo-data/_shared/`.

## `Could not reach the hub, continuing on the last synced files`

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

## HUD или модели выглядят неправильно на одном сервере

Обычно это конфликт имён плагинов. На прокси:

```
[nexohub] Contributions lobby/betterhud and pvp/betterhud both define
assets/betterhud/font/a.json with different content.
```

Выключите `resourcepack-obfuscation` в конфиге BetterHUD.

Модели могут выглядеть неправильно без предупреждения на прокси, потому что BetterModel
передаёт свой вывод напрямую Nexo, и хаб его никогда не видит. Проверьте лог бэкенда:

```
[NexoHubBridge] BetterModel's pack.use-obfuscation is on, so it names model parts by
this server's load order
```

Установите `pack.use-obfuscation: false` в `plugins/BetterModel/config.yml` на каждом
бэкенде и перезапустите. Nexo в любом случае обфусцирует объединённый пак, так что вы
ничего не теряете.

См. [паки плагинов](/ru/guides/plugin-packs#two-settings-to-check).

## `/nexohub contributions` пуст или в нём нет плагина

Проверьте в консоли бэкенда, что он решил:

```
[NexoHubBridge] Published BetterHud (381 KiB) for the rest of the network.
[NexoHubBridge] Leaving MyBoughtPack.zip in external_packs/ alone: no plugin here says
it wrote it, so it is yours and stays on this backend.
```

Если плагин отсутствует полностью:

* `pack-type: none` в его конфиге означает, что он ничего не собирает.
* Его `build-folder-location` указывает за пределы `Nexo/pack/external_packs/`, так что
  Nexo никогда не импортирует его как внешний пак. BetterModel поставляется так
  намеренно.
* Его конфиг не парсится, и бэкенд об этом сообщает.

**Zip**, который вы сами положили в `external_packs/`, никогда не публикуется, поскольку
никакой плагин на него не претендует. Вместо этого положите его в
`nexo-data/_shared/pack/external_packs/` на прокси, и его получит каждый бэкенд.

## Я распаковал пак на одном бэкенде, и он разошёлся повсюду

**Папка** в `external_packs/` публикуется там, где zip — нет, потому что запись папки
туда — это способ, которым собираются некоторые генераторы. Бэкенд об этом сообщает:

```
[NexoHubBridge] mcmodels in external_packs/ is not something a plugin here says it
wrote, so it looks like yours. It is published to the rest of the network as this
backend's.
```

Переместите её в `nexo-data/_shared/pack/external_packs/` на прокси и удалите с бэкенда.
Чтобы оставить её на этом одном бэкенде, укажите её в `contribute_exclude`.

## Мои паки не переместились, когда я запустил `/nexohub adopt`

Усыновление никогда не переносит `pack/external_packs/`, потому что большая его часть
всё равно пересобирается на каждом бэкенде. Команда перечисляет, что она оставила, и
помечает то, за что не отвечает ни один плагин:

```
[nexohub] 1 of those are not accounted for by any plugin there.
```

Это — ваши файлы. Загрузите их один раз в `nexo-data/_shared/pack/external_packs/`.
Остальным ничего не нужно.

## Пак, который я удалил из `external_packs`, продолжает возвращаться

Его возвращают обе половины. Плагин записывает его снова при следующем запуске, а хаб
возвращает ваш собственный вклад как `_hub-<name>-<id>`.

Остановите то, что его генерирует — удалите HUD из конфига BetterHUD, деинсталлируйте
плагин или добавьте папку в `contribute_exclude` — и он исчезнет при следующей
перезагрузке.

Если бэкенд не может отозвать его сам, удалите его вручную:

```
/nexohub contributions drop lobby oldhud
```

## Мультипак-шаблоны показывают основной пак

Ваш хост скрывает хеш пака в URL, а мультипаку он нужен. Так делают `POLYMATH` и
`LOBFILE`. Переключитесь на `hermes`, `s3` или `proxy`. См.
[хостинг](/ru/guides/hosting#if-you-use-multipack).

## Игроки скачивают пак заново при переходе между серверами

```
/nexohub status
```

```
same files, different packs (lobby on a6efb696; survival_hub on a8ba1e90)
```

Бэкенды на одних и тех же файлах никогда не должны до этого доходить, поскольку сеть
выбирает один пак и все его раздают. Если вы всё же это видите, значит одно из:

* Старый `NexoHubBridge.jar` на этих бэкендах. Обновите его везде.
* Они не смогли достучаться до хаба, когда генерировали. Исправьте соединение и
  отправьте изменения снова.
* Один хранит содержимое пака, которого нет у остальных, так что файлы совпадают только
  на бумаге. Проверьте `/nexohub contributions`.

Если они на *разных* файлах, они и должны различаться, и ничего не сломано. Это
переопределение для отдельного сервера или разные версии.

<Note>
  `Pack.obfuscation.type: NONE` здесь не помогает, хотя кажется, что должен. Два сервера с
  идентичными файлами всё равно собирают разные байты даже при полностью выключенной
  обфускации.

  Если полосы загрузки нет и игроки видят только применение пака, ничего не скачивается
  заново — это пак отправляется повторно, а подавлять это — работа NexoProxy.
</Note>

## Правка сделала только хуже

```
/nexohub history
/nexohub rollback <id>
```

Копия сохраняется каждый раз, когда ваши файлы меняются. См.
[безопасность](/ru/guides/safety#going-back).

## Заполняется диск на прокси

```
note plugins/nexohub/ uses 62 MiB (2 pack(s), 4 snapshot(s))
```

Старые паки очищаются автоматически. `/nexohub packs prune` делает это прямо сейчас,
`packs.keep` и `sync.snapshots` задают лимиты.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.