CriticalPDF

Service operations

The CriticalPDF Service health panel, log viewer, update controls, and diagnostics tools — all in Help / Support.

The CriticalPDF Service runs in the background and is configured automatically by the installer. You don’t normally need to touch it, but when you do, everything is reachable from Settings → Help / Support in the desktop app.

Help and Support page

Versions and updates

The top section shows:

  • Suite version (date-based, e.g. 2026.517.37.0).
  • CriticalPDF UI version (the desktop app).
  • CriticalPDF service version (the Windows service).
  • Update channel (public by default).
  • Auto-update state (Enabled or Disabled).
  • Available version — populated after you click Check for updates.

Buttons:

  • Check for updates — queries the manifest immediately.
  • Install update — enabled only when a newer version is available.
  • Refresh service info — re-polls the local service for its current state.

CriticalPDF uses a manifest-driven auto-update system. The service knows where to look for the channel manifest at build time — operators don’t configure the URL and shouldn’t need to know it.

The manifest carries:

FieldPurpose
Suite versionThe four-part version compared against what’s installed.
Component versionsApp and service component versions for diagnostics.
SHA-256Hex hash of the MSI. The service verifies the downloaded file against this before applying — a mismatch aborts the install.
ChannelWhich manifest this is (public, beta, …).
MSI locationThe URL the service downloads from.
Publish timestamp + commitFor operator visibility.

Each MSI is also published with a .sha256 sidecar so operators can verify a manually-downloaded copy without parsing the manifest — the Downloads page links to the sidecar under each release.

The service polls the manifest on startup and every UpdateCheckIntervalHours (default 24); if the manifest version is newer than what’s installed, the service downloads the MSI, verifies its SHA-256, signals a graceful stop, runs the installer silently, and starts the new service. A hash mismatch fails closed — the download is discarded and the existing service keeps running.

Service status (advanced)

Service status panel showing SCM state, uptime, last capture, TCP endpoint

FieldWhat it tells you
SCM stateRunning, Stopped, Starting, Stopping — straight from the Windows Service Control Manager.
Started (UTC)When the service last started.
UptimeContinuous run time since the last start.
Last captureTimestamp of the most recent print captured.
Last spooler eventMost recent Win32 spooler notification (independent of whether it produced a capture).
Last handoffLast successful delivery to the desktop app.
Last dead-letterLast time a job had to be sealed for retry.
Last replayLast time a dead-lettered job was successfully replayed.
TCP endpointLoopback address + port the service is bound to (default 127.0.0.1:9100).
Spooler monitorWhether Win32 spooler notifications are enabled.
Dead-letter retryWhether automatic retry is enabled.

Service stats (advanced)

The stats panel shows live counters with Today and Total columns:

  • Captured — print jobs taken from the spooler.
  • Bytes — total bytes captured.
  • Handoff success — successful pipes to the desktop app.
  • Dead-lettered — jobs sealed for later retry.
  • Replayed — dead-letters successfully delivered on a later attempt.
  • Unrecoverable (all-time) — jobs that exhausted their retry budget.

Plus the on-disk dead-letter queue size:

  • Pending retry — jobs waiting for the next replay window.
  • Unrecoverable on disk — jobs that gave up but haven’t been purged yet.

Recent log (in-memory)

Log viewer with substring filter and severity checkboxes

The last 500 log records, filterable in real time:

  • Filter — substring match, narrows as you type.
  • Severity checkboxes — SEVERE, WARNING, INFO, FINE+ — toggle which levels to show.
  • Auto-scroll to latest — checkbox that auto-scrolls as new lines arrive.

For a complete history, use Open log folder under Diagnostics — the rotated log files at C:\ProgramData\CriticalPDF\logs\ go back 14 days.

Diagnostics

Diagnostics section with config / log / send buttons and keyboard shortcuts

Everything CriticalPDF writes lives under C:\ProgramData\CriticalPDF\ — your per-user config.json in users\<username>\, the machine-wide serviceconfig.json, and the shared stats, logs, error reports, and staged diagnostics. The Open buttons jump straight there in Windows Explorer.

Three buttons:

  • Open config folder — Explorer at your per-user config directory, C:\ProgramData\CriticalPDF\users\<username>\.
  • Open log folder — Explorer at the rotating service log directory, C:\ProgramData\CriticalPDF\logs\.
  • Send diagnostics to support — packages logs + a redacted config snapshot + an environment summary, then pre-fills your default mail client. Review the staged zip before sending — known secret fields are redacted automatically.

Keyboard shortcuts

Listed under Diagnostics for reference. In the main window:

ShortcutAction
Ctrl+SSave & Exit
Ctrl+1Ctrl+6Jump to a sidebar page (General, Templates, Email, Savings, Licensing, Help)
EscCancel a modal dialog

In the PDF preview window:

ShortcutAction
+ / -Adjust zoom (50 DPI per step)
Mouse dragPan the view

The service configuration file

The service configuration file lives in the shared data folder:

C:\ProgramData\CriticalPDF\serviceconfig.json

It’s auto-generated at install time with sensible defaults. You rarely need to edit it, but the most useful keys to know:

KeyDefaultPurpose
PrinterNameCriticalPDFThe virtual printer queue the service watches.
TcpPort9100Loopback port for the desktop-app handoff.
BindAddress127.0.0.1Always loopback — never network-reachable.
OutputFolderC:\ProgramData\CriticalPDF\InProcessWhere captures land before handoff.
OnFailureFolderC:\ProgramData\CriticalPDF\DeadLetterWhere dead-lettered captures are sealed.
MaxConcurrentConnections3Cap on simultaneous handoffs to the app.
ConnectionTimeoutSeconds600Maximum handoff duration before timing out.
EncryptionPassword(random per install)Symmetric key used to seal dead-lettered captures on disk.
EnableAutoUpdatetrueWhether the service should self-update on its check interval.
UpdateCheckIntervalHours24How often to check for new releases.

After editing, restart the service to pick up the change:

Restart-Service "CriticalPDF Service"

Restarting the service

You shouldn’t normally need to. If you do:

Restart-Service "CriticalPDF Service"

On a graceful restart, the service drains in-flight captures and handoffs (up to 55 seconds) before exiting — long enough that an MSI upgrade never truncates a job mid-delivery.

Disabling the service for maintenance

To stop accepting new captures without uninstalling:

Stop-Service "CriticalPDF Service"
Set-Service "CriticalPDF Service" -StartupType Disabled

To bring it back:

Set-Service "CriticalPDF Service" -StartupType Automatic
Start-Service "CriticalPDF Service"

Print jobs queued to the CriticalPDF printer while the service is stopped will sit in the Windows spooler until the service starts again, at which point they’re captured normally.


Was this page helpful? Let us know.