Skip to content
Haiku OSFix Published Updated 3 min readViews unavailable

Fixing HaikuDepot and pkgman Repository Synchronization Failures

Diagnose Haiku repository sync through connectivity, clock and TLS, enabled URLs, architecture, refresh errors, and coherent full-sync.

Repository synchronization combines network, DNS, HTTPS validation, repository URL/branch, architecture, cached metadata, and package solving. Capture the command-line error before deleting state. HaikuDepot and pkgman use the same configured repositories, so Terminal output is usually the clearest first evidence.

Prove network, DNS, and clock

Confirm the interface has an address, default route, and DNS. Test the repository hostname outside HaikuDepot. If numeric connectivity works but the name does not resolve, repository settings are not the first problem.

Open Time preferences and verify date, time zone, and clock. A badly wrong clock can make a valid HTTPS certificate appear expired or not-yet-valid. Record the exact TLS/certificate error before correcting time.

If only one repository host fails, test its URL in a browser and compare another enabled repository. A general network failure and one unavailable mirror require different fixes.

Inventory repositories and architecture

Run:

pkgman list-repos
getarch

Save all repository names, URLs, enabled state, and the reported architecture. Open Preferences → Repositories to enable/disable entries. The official guide warns that adding a repository is a trust decision; do not paste an unverified mirror from a forum merely to clear an error.

Match the Haiku repository to the intended stable release or nightly development track. The official update guide publishes the current URL patterns. Mixing a stable installation with a nightly snapshot—or an architecture-specific URL for another build—can produce solver and metadata symptoms after download succeeds.

Disable stale third-party repositories one at a time and retry. Do not remove official repositories until their correct replacement URL is documented.

Refresh metadata explicitly

Use the current command:

pkgman refresh

Capture its full output. This separates repository fetch/parse problems from an installation transaction. Note which repository fails, HTTP/TLS status, checksum or format message, and local cache path.

Do not erase all package databases blindly. A missing/corrupt cached repository can often be repaired by disabling and re-enabling that one repository through supported preferences or re-adding its verified URL. Preserve the failing file/output if the same metadata repeatedly fails; it may be an upstream publishing defect.

If pkgman refresh works but HaikuDepot still shows stale data, close/reopen it and save its debug/Terminal output if reproducible. The GUI issue is then above repository transport.

Synchronize a coherent package set

After every required repository refreshes and branch/architecture are correct, run:

pkgman full-sync

Read the proposed changes. full-sync is intentionally more aggressive than update and can downgrade/remove packages to match repositories. Back up important data and avoid noninteractive -y during diagnosis. Use -H only for a deliberate home-scope sync.

Reboot when system packages changed, then confirm About Haiku revision, pkgman list-repos, and the original application/update operation. Keep the old bootable package state until the new state works reliably.

Produce a useful failure report

Attach Haiku revision/architecture, list-repos, failing command/output, system time/time zone, network/DNS test, exact repository, and whether disabling third-party entries changes it. Redact credentials or private repository tokens while preserving host/path and status.

For official repository metadata or Package Kit errors, report to Haiku. For a third-party repository, contact its operator. If the server was temporarily unavailable, record timestamps and verify later rather than modifying the installed package state.

The safe order is connectivity, clock/TLS, repository inventory, one explicit refresh, then reviewed full-sync. This preserves evidence and avoids turning a transient mirror failure into a broken configuration.

Related:

Sources:

Comments