Troubleshooting
Common runtime, delivery, persistence, and edition-related troubleshooting checks.
Start troubleshooting from the message state and the subsystem involved. The Administration Console, /health, message diagnostics, logs, and—in commercial deployments—Prometheus/Grafana provide the primary operational signals.
HL7 intake and MLLP
| Symptom | Likely checks |
|---|---|
| No HL7 accepted | Verify mllp.port, listener health, firewall/network access, MLLP framing, sender host/port, and configured charset. |
| Connections fail or time out | Check network path, socket timeout, sender retry behavior, firewall/NAT rules, and whether another process already uses the listener port. |
| NAKs increase | Inspect syntax/framing errors, message size limits, unsupported input, and processing/failure diagnostics. |
Processing failures
PROCESSING_FAILED indicates an internal processing problem such as a mapping, script, or runtime failure. Open the Message Details view and inspect Last error together with the raw HL7 input.
- Check custom Groovy script logic and recent script changes.
- Verify required HL7 identifiers or fields used by the mapper.
- Check processing retry attempts and whether the processing circuit breaker is open Commercial.
- Correct the underlying cause before using administrative retry.
FHIR delivery failures
DELIVERY_FAILED indicates that conversion completed but downstream FHIR delivery failed.
- Verify
fhir.server.base.url, authentication, network reachability, and TLS trust. - Inspect the FHIR HTTP status and response text in Message Details.
- Check downstream FHIR server latency, HTTP 429/5xx responses, and timeout configuration.
- Review the FHIR delivery circuit breaker when repeated failures pause outbound delivery Commercial.
Rejected messages
REJECTED is commonly associated with semantic validation or workflow rules that intentionally block delivery. Review the validation result, rule severity, rule scope, and the clinical/workflow context that caused the rejection.
Database, retention, and disk growth
- Verify
retention.processed.days,retention.filtered.days,retention.failed.days, and the purge interval. - Check whether failed/rejected message volume has increased.
- Monitor available disk capacity and SQLite database growth.
- Keep
db.pathon local server storage, not NFS/SMB/network-mounted storage. - Review backup retention and backup destination growth.
Administration Console unavailable
Check that FireSonic is running, verify management.host and management.port, confirm firewall/network access, and test /health. Also verify management authentication credentials when the HTTP endpoint is reachable but access is denied.
Scripts and semantic rules
- Compilation or initialization failures during startup prevent invalid script/rule generations from becoming active.
- Verify
scripts.dirandsemantic.rules.dir. - Automatic script/rule hot reload requires the corresponding auto-reload setting and a commercial edition Commercial.
- For semantic rules, inspect the rules-engine state and loaded rule count in the Administration Console.
TLS and certificate problems
- Check the TLS Certificates Administration Console view for loaded and expiring certificates.
- Verify
tls.certs.enabled=trueandtls.certs.dir=./config/certs. - Supported additional trust files are
.pem,.crt, and.cer. - FireSonic loads additional certificates during startup; restart FireSonic after changing them.
Slow processing or delivery
Measure where time is spent before changing worker or JVM settings. Common causes include downstream FHIR latency, network latency, expensive Groovy logic, terminology/external service calls, large Bundles, slow storage, and constrained CPU/memory.
Use the Performance and Monitoring articles to establish the bottleneck before tuning the deployment.
Useful diagnostics
| Diagnostic | Use |
|---|---|
/health | Current platform, database, listener, script/rule, and operational health. |
| Administration Console | Message states, search, details, raw HL7, retries, TLS certificates, and semantic rules. |
| Application logs | Startup problems, stack traces, configuration errors, processing failures, and downstream delivery errors. |
/metrics Commercial | Prometheus time-series metrics for rates, failures, latency, storage, backup, and runtime state. |
| Official Grafana dashboard Commercial | Visual correlation of throughput, failures, MLLP activity, storage, backup, and runtime health. |
