14.6 A Broken Claim
A claim path is missing, dangling, or pointing at the wrong thing.
14.6.1 Missing #
The role may simply be unheld — its holder was uninstalled and nothing
was promoted (§9.7). peipkg claim <role> reports the holder and the
remaining eligible providers, and granting to one of them restores the
link.
The role may be held with no consumer declaring a path, in which case there is nothing to materialise and nothing is wrong.
Or a package payload may have been installed over the link. peipkg does not prevent that: the link is renamed aside, the payload file takes the path, and the claim-link record survives. Reconciliation then compares its record against its own desired set, finds them equal, and never notices. The link does not come back on its own.
14.6.2 Dangling #
The holder's target does not exist. Either the target names a path the holding package does not ship — which peipkg does not check at install time (§9.2) — or something removed it.
14.6.3 Pointing at the wrong thing #
A claim path cannot land outside the managed tree: the manifest decoder
confines it to the permitted install destinations, /run/ and /init
(§9.2). A new claim refuses differing unowned content at that path by
default. If package installation was explicitly authorised to overwrite
unowned content, the displaced file is retained and the warning names its
backup path. An identical relative symlink is adopted without replacement.
For a link that is already recorded as manager-owned, a holder change still atomically repoints it. As described below, reconciliation compares database records rather than checking for manual changes to existing claim links.
14.6.4 Repairing #
Granting a role to a provider repoints every one of its links from current state, so a grant — even a grant to the current holder's alternative and back — is the blunt instrument that rebuilds a role's links.
Where the database's record disagrees with the filesystem, reconciliation will not detect it, because it diffs the recorded set against the desired set rather than against disk. Reinstalling the holder is what refreshes both.