A server shows as stale
An empty server is not the reason. Backends report on their own, so a server nobody is
on still shows what it has. Check in this order:
1
Is it running?
A backend that is down or has no bridge shows as
never reported, not stale.2
Is the secret right?
The backend log says
Hub rejected the request: wrong hub.secret in config.yml.
Copy it again from the proxy.3
Is the name right?
If you set
server_name by hand it has to match your proxy’s server list exactly.
A backend that has never had a player and has no name set cannot ask for its files.4
Can it reach the proxy?
Could not reach the hub means a firewall or a wrong hub.address. If the proxy
sets http.api_address, the backend has to point at that port.5
Is polling off?
poll_seconds: 0 means that backend only syncs while somebody is on it. Its log
says Polling is off at startup.last reload failed on a server that looks fine
Nexo said: part of the message is what Nexo printed while it ran, which usually says
what.
A clean reload means a pack came out. It does not mean Nexo had nothing to complain
about on the way, since NexoHub cannot tell an error from a progress line in Nexo’s own
output. If something still looks wrong, read that backend’s console.
Nothing was pushed, files do not parse
Backends disagree on versions
Players are not getting the pack
Run/nexohub doctor.
On the default hosting the pack comes from an external host, and doctor says so:
packs.host: proxy doctor fetches your address from outside:
Invalid PackServer type specified: HUB
Nexo started before the bridge could register. Check NexoHubBridge.jar is in that
backend’s plugins/ and look just above this line for the bridge’s own error.
Nexo carries on without a pack server, so nothing broken is sent to players.
NexoHubBridge is inactive: hub.secret is not set
Copy secret from the proxy’s config.yml into that backend’s and restart. It is the
same on every backend.
Until you do, that backend leaves Nexo’s pack serving alone rather than half-taking it
over, so players there get no pack. The rest of the network is fine.
players will not be able to download it
The proxy was unreachable or refused the upload, so nothing was sent rather than a
broken link. Check the proxy is running and that hub.address and hub.secret are
right. It retries on the next reload.
The hub has no Nexo files of its own, so nothing was swept
Normal right after installing on the proxy. Nothing is wrong and nothing was lost. A hub
with nothing in nexo-data/ is never read as “delete this backend’s files”, even when
its bundle already carries other backends’ generated output or shared plugin sources.
Do one of the two things the message says: /nexohub adopt <server> to fill it from a
backend you trust, or put files in nexo-data/_shared/ yourself.
Could not reach the hub, continuing on the last synced files
The backend started while the proxy was down. It uses the files it synced last time and
catches up on its own. You see this once, not once a minute.
HUDs or models look wrong on one server
Usually a plugin naming clash. On the proxy:resourcepack-obfuscation in BetterHUD’s config.
Models can look wrong with no proxy warning, because BetterModel hands its output
straight to Nexo and the hub never sees it. Check the backend’s log:
pack.use-obfuscation: false in plugins/BetterModel/config.yml on every backend
and restart. Nexo obfuscates the merged pack anyway, so you give nothing away.
See plugin packs.
/nexohub contributions is empty, or missing a plugin
Check the backend’s console for what it decided:
pack-type: nonein its config means it builds nothing.- Its
build-folder-locationpoints outsideNexo/pack/external_packs/, so Nexo never imports it as an external pack. BetterModel ships that way on purpose. - Its config will not parse, and the backend says so.
external_packs/ yourself is never published, since no plugin
claims it. Put it in nexo-data/_shared/pack/external_packs/ on the proxy instead, and
every backend gets it.
I unpacked a pack on one backend and it went everywhere
A folder inexternal_packs/ is published where a zip is not, because writing a
folder there is how some generators are collected. The backend says so:
nexo-data/_shared/pack/external_packs/ on the proxy and delete it from the
backend. To keep it on that one backend, name it in contribute_exclude.
My packs did not move when I ran /nexohub adopt
Adoption never carries pack/external_packs/, because most of it is rebuilt on every
backend anyway. It lists what it left, and flags the ones no plugin accounts for:
nexo-data/_shared/pack/external_packs/. The rest
need nothing.
A pack I deleted from external_packs keeps coming back
Both halves put it back. The plugin writes it again on its next run, and the hub hands
your own contribution back as _hub-<name>-<id>.
Stop whatever generates it — remove the HUD from BetterHUD’s config, uninstall the
plugin, or add the folder to contribute_exclude — and it clears on the next reload.
If the backend cannot withdraw it itself, drop it by hand:
Multipack templates show the main pack
Your host hides the pack hash in the URL, and multipack needs it.POLYMATH and
LOBFILE do this. Switch to hermes, s3 or proxy. See
hosting.
Players re-download when switching servers
- An old
NexoHubBridge.jaron those backends. Update it everywhere. - They could not reach the hub when they generated. Fix the connection and push again.
- One holds pack content the others do not, so the files only match on paper. Check
/nexohub contributions.
Pack.obfuscation.type: NONE does not help here, though it looks like it should. Two
servers with identical files still build different bytes with obfuscation off entirely.If there is no download bar and players only see the pack applying, nothing is being
re-downloaded — that is the pack being sent again, which is NexoProxy’s job to suppress.An edit made things worse
Disk filling up on the proxy
/nexohub packs prune does it now, packs.keep and
sync.snapshots set the limits.