Pular para o conteúdo principal

Troubleshooting

Failure modes by where they are noticed, what each looks like, and where to read the cause. Every HTTP response carries an X-Correlation-Id; quote it and an operator finds the request's Server log lines and Audit Log rows at once.

The Server will not start​

Every refused start is one Critical line naming the cause. The full table is on Server installation. The short version:

SymptomCause
A line naming KeyRingProtector:No protector, not base64, wrong password, or no RSA key. Every deployment needs one.
…the Key Ring Protector configured here opens none of themA swapped protector. Restore the old one, or add it under RetiredCertificates.
…could not be reached in 90 secondsThe database never answered at start. On Azure SQL, check public network access or the private endpoint (error 47073).
…is behind the build … by N migration(s)MigrateOnStart is off and migrations are pending.
…has N migration(s) applied that this build does not containAn older image on a newer schema, or a database created by Server 1.2.0 or earlier.
Signer:ApiKey is required…A Signer address with no key.
Sessions:MaxDuration below DefaultDuration, or another cross-key ruleA refused configuration; the line names both keys.
On App Service, the container is killed and restarted in a loop with nothing useful loggedA migration outlasting WEBSITES_CONTAINER_START_TIME_LIMIT (230 s default). Set it to 1800.

The Server started but does not work​

SymptomWhat it isWhere to look
/ answers 200, /healthz answers 503The database went away after start. The contract fails; the vault is closed.The connection string, SQL Server's availability.
Every vault signature and import is refused while workstations sign fineThe vault latch: the Server came up before its database.The VaultReadiness warning at start. It opens on the first use once the database answers.
Every Vault Certificate reads UNTRUSTED; imports refusedNo PKI SDK licence, or a lapsed one.The LacunaPkiRuntime Critical line at start. Set Certificates__Validation__License.
Every certificate on the Server reads UNTRUSTED although the licence is currentNo anchor can terminate a chain: UseIcpBrasil off with no Trusted CA that is a root, or a read-only filesystem with no writable /tmp so the licence could not be loaded.The two anchor-set Critical lines; mount a tmpfs over /tmp.
A setting has no effectOne of the seven overridable keys was saved on the Settings screen, and the database layer wins silently./admin/settings; restore the deployed defaults.
Admin console at http:// never completes a loginA cookie without Secure over a link the platform upgrades.On App Service, --https-only true. Behind a proxy, ASPNETCORE_FORWARDEDHEADERS_ENABLED=true.
Every audit row records the proxy's addressForwarded headers are off.ASPNETCORE_FORWARDEDHEADERS_ENABLED=true.
KeyRingProvider[48] or XmlKeyManager[24] lines on a Server that started cleanlyThe database is unreachable, not the protector./healthz.
A Critical line carrying a whole audit rowThe database refused an audit write; the row lives only in this line.Keep the log stream. The console shows an alert.
A warning banner on every admin pageUseLacunaTestPki is on, or an audit write failed.Turn the test PKI off on anything but a development box.

Workstations​

SymptomWhat it isWhere to look
Install exit code 1603, log names SERVER_URLThe launch condition: empty or scheme-less URL.Pass SERVER_URL=https://….
Install exit code 1603, log says a newer version is installedA downgrade.Uninstall first; the machine returns as a new one.
Install rolls back at Starting servicesThe service refused to start: a licence the SDK will not read, an INSTALLER_KEY that will not parse, or a registry value of the wrong type.Application event log, source TrustBridge Workstation Service.
Installed, never appears in the admission queue, nothing on the ServerThe Server URL is wrong, or a GPO is overriding it, or the TLS chain is not trusted by the machine.The service's Server:Url is …, supplied by … line at start; HKLM\Software\Policies\TrustBridge from a 64-bit PowerShell.
Never appears, and the machine's log says its admission request was refusedOne of four: revoked, an Installer Key the Server does not trust, too many requests from its address, or a full queue. The Server deliberately does not say which.The last two clear themselves. Check the fleet screen for a revoked row.
In the queue, Tray says waiting to be admittedNot a fault.Admit it at /admin/admission.
Admitted, but does not connect; Server log says Protocol version 2 is newer than this server's supported windowThe workstation was upgraded ahead of its Server.Upgrade the Server.
Admitted, but does not connect; Server log says A workstation assertion was refused: Expired or NotYetValidThe machine's clock is more than 60 s out.Time synchronisation on the machine.
Every certificate reads UNTRUSTEDNo PKI licence or a lapsed one, or no anchor can terminate a chain.The Critical line at service start; PKI_LICENSE by repair or Group Policy, then restart the service.
A certificate reads UNTRUSTED while the licence is fineIts issuer is not in the machine's anchor set.Trust the issuer on the Certificate Registry, which adds a Trusted CA that reaches the machine. A machine on protocol 1 needs anchor files instead.
A certificate reads STALEIts CA's CRL could not be fetched for longer than the grace window (24 h).The CA's reachability from the machine.
A token is plugged in but no certificate appearsUncommon middleware not in the shipped list; or a module named in Certificates:Pkcs11:Modules that will not load.The service log names the module. The sweep also catches a missed change trigger within a minute.
The Tray App is not there after installIt starts at the next sign-in.Sign out and in, or start Tray App\TrustBridge.TrayApp.exe.
The Tray App says Not connectedIt could not open the service's pipe. Workstation 1.0.0 had a bug here, fixed in 1.0.1.Upgrade the workstation package.
A PIN prompt stays on screen after the client already got an errorExpected: the Server's prompt timeout (60 s) is shorter than the Tray's (90 s), and a Server that gave up cannot take the prompt down.Nothing.
A policy change had no effectThe registry is read once, at start.Restart-Service "TrustBridge Workstation Service".
A perfectly configured machine looks bare in the registryA 32-bit PowerShell redirected to WOW6432Node.Use a 64-bit PowerShell.
Every certificate on a machine is reported as ACTIVE, including sample onesUseLacunaTestPki on, or a FakeTokens section in the settings file.Remove both on any machine anybody signs from.

Client application errors​

Branch on error.code. The full vocabulary is on the REST API page.

CodeUsual causeWhat to do
401 UNAUTHORIZEDMissing, mistyped, revoked or expired key, or a disabled application. All refused identically.Check the key on the Client Applications screen.
401 SESSION_EXPIREDThe session idled out, was deactivated, was replaced by a newer one for the same CPF, ran out of its Signature Allowance, or was vault-bound across a Server restart.Create a new session. Nothing says which; that is deliberate.
400 INVALID_REQUEST on POST /v1/sessions naming cpfCheck digits do not agree, or a repeated-digit value.Fix the CPF at the source. Validate check digits in your form.
400 INVALID_REQUEST on a signNo sessionId in the request.Send the id POST /v1/sessions returned. Retrying unchanged fails identically.
404 CERT_NOT_FOUNDNo certificate for the CPF is held anywhere: the token is not plugged in, the machine is not admitted or connected, or the CPF was never issued.The Certificate Registry and the fleet screen.
422 CERT_NOT_ACTIVEEvery certificate for the CPF is EXPIRED, REVOKED, UNTRUSTED or STALE. UNTRUSTED often means the deployment's anchors do not cover the issuer.GET /v1/certificates/info for the verdict; the Certificate Registry for the issuer.
401 INVALID_PINWrong PIN, or a workstation holding a different PIN in use.Ask the holder. Five failures in fifteen minutes lock the CPF.
422 PIN_NOT_AVAILABLEThe Tray prompt timed out, was declined, or nobody was signed in to answer it; or a Vault Certificate could not be opened.The holder must be at their machine with the Tray App running.
422 WORKSTATION_OFFLINEEvery machine holding an active certificate for the CPF is offline, after the reconnect grace on a sign.The fleet screen.
422 CERT_INCOMPLETE_IDENTITYThe certificate names no e-mail address.Send email when creating the session.
422 SIGN_TIMEOUTThe signature did not finish within Signing:RequestBudget (60 s). A slow machine or a slow Signer.The Signing Operations screen shows the stage reached.
422 SIGNER_REJECTEDLacuna Signer refused the document; details carries its message.The document itself.
502 SIGNER_ERRORSigner could not be reached.Signer's availability, Signer:BaseAddress.
409 DOCUMENT_NOT_READY that never clearsThe signature is still in flight, or a run was stranded by a restart and Signer still holds the document open.The Signing Operations screen; RUN_STRANDED.
429 SERVER_BUSY during ordinary useThrottle:ConcurrencyLimit set too low for the deployment, not a client problem.Raise it. Under a genuine spike, retry with backoff and jitter.
429 TOO_MANY_PIN_ATTEMPTSThe per-CPF lockout.Wait for the window (15 min) to pass. Retrying makes it worse.
404 ENDPOINT_NOT_FOUNDA route without the /v1 prefix.Fix the URL.
413 DOCUMENT_TOO_LARGEOver Signing:MaxDocumentBytes (10 MB by default).Smaller document, or raise the cap knowing what it costs.
500 INTERNAL_ERROR on a sign, with could not be opened by the reader this platform signs with in the Server logA Vault Certificate imported before the legacy-shape check existed, shrouded under pkcs5PBES2.Re-export with openssl pkcs12 -export -legacy and import again. That needs the original file.

Signing outcomes on the Signing Operations screen​

A Failed operation carries a failure code and the stage it reached: the client's 202 may have been answered long before. RUN_STRANDED means the Server was restarted under the run and a sweep ended it. A run that failed after the document reached Signer leaves a document open there, which the fetch reports as 409 until Signer's own retention or the tidy-up ends it as 422.

Getting help​

Send Lacuna Software support the X-Correlation-Id of the failing request, the Server version shown in the admin console footer, the workstation package version from the fleet screen, and the relevant Server log lines. For a workstation problem, add the Application event log entries from source TrustBridge Workstation Service. Never send a PIN, an API key, the Key Ring Protector or the licence.

View as Markdown