Skip to main content
Only the first is what people usually mean, and only the third is surprising.

Configuration reloads on its own anyway

The gateway polls for database changes. reload exists because the poll is up to thirty seconds behind, which is too slow when you are watching.
A change made in the panel does nothing if the gateway is reading a file for that domain.Check config_sources on /ops/health — it reports per domain whether properties, credentials, routing and rates come from database or file. The symptom of getting this wrong is “my edit did not apply”, which sends people looking at the edit rather than at the source.

Credit is not configuration

reload does not touch it, and this is the one that catches people. The gateway reserves credit in blocks — moving money out of account_balance.balance into reserved and holding the block in memory. That is what keeps the message path off the database. So correcting a balance by hand does not take effect until the block already handed out is used up. An account set to zero keeps sending.
credit release returns the unspent remainder of each block to balance and writes a RELEASE row to the ledger, so the next message reserves against the corrected figure.
It takes nothing away. Whatever is returned is immediately reservable again, and the already-spent portion stays spent — balance + reserved is unchanged by a release.Omitting the account releases every one. That is right after a bulk correction and wasteful otherwise, since every account’s next message then pays for a fresh reservation.

The same command after a crash

A kill -9 strands whatever was reserved. The money is parked, not lost — balance + reserved still balances — and credit release is how it comes back. A clean shutdown does this by itself.

What a reload does not do

  • It does not restart workers. A worker that failed to bind retries on its own schedule; a listener that could not take its port retries on the next poll or reload without needing a restart.
  • It does not clear runtime state set by disable, suspend or hold. Those are deliberately outside configuration so they can act immediately — and they revert on restart rather than on reload.
  • It does not change what a bound session is allowed to do. A rate change applies to already-bound SMPP sessions within about 200 ms; it does not require them to re-bind.

Worker control

The verbs that act immediately rather than on a poll.

Prepaid credit

Blocks, reservations, and why the balance lags.