PAN-OS Commit Failures: Logs and Validate Explained - 夜莺博客

PAN-OS Commit Failures: Logs and Validate Explained

PAN-OS commits fail in two flavours that look identical in the GUI: a configuration error that validation catches, and an infrastructure problem where the commit never gets the chance to be wrong - a stopped daemon, a full log partition, or a device still in "Not Ready" state after a reboot. The GUI often shows only a generic failure, which is why knowing which log to open is the whole skill. This article maps commit failures to the log or command that reveals the real reason.

The Commit Pipeline in Detail

A PAN-OS commit is not a single operation, which is why "commit failed" is such an unhelpful message. The firewall runs a pipeline of stages, and a failure in any one of them aborts the rest:

  1. Candidate config is taken. The candidate becomes the running config only after every downstream stage succeeds.
  2. Validation. Syntax and semantics are checked, including cross-references between objects - a rule referencing a non-existent address, a zone that is defined but not attached to an interface, and so on.
  3. Commit job creation. A job ID is allocated and appears in show jobs all, with a phase and a progress column.
  4. Config generation. The management plane renders the configuration into the forms the data plane consumes.
  5. Policy and object application. The device server pushes the rendered configuration into enforcement components. This is the stage where enforcement-side failures appear.
  6. Commit finalisation. The running configuration is updated and, if configured, a commit-all push to Panorama or log collectors follows.

Knowing which stage failed tells you which log is worth opening. A validation failure never produces a device-server message; an enforcement failure never appears in the validation output. That fork is the single most useful diagnostic decision in this whole procedure.

Step 1: Validate Before You Commit

admin@PA-3060> configure
admin@PA-3060# validate full
Validate job enqueued with jobid 3041
admin@PA-3060# exit
admin@PA-3060> show jobs id 3041

A FIN/OK result means syntax and semantics passed; warnings about application dependencies (for example a rule referencing an application without its dependencies allowed) are worth reading but do not block the commit. Validating inside a change window is faster than committing and rolling back.

The value of validate full over a plain commit is that it performs the checks without touching enforcement. On a large ruleset, validation is also the fastest way to find the object that a change broke, because the error message names the offending object rather than the phase that failed.

Step 2: Find the Failing Phase

show jobs all
show jobs processed
show jobs id <jobid>

Look at the commit's phase and the progress column. A failure at the policy/enforcement stage points at the firewall's device server; a failure while pushing from Panorama points at the management server or the managed device. Jobs are also readable with a filter, which is useful when a site commits frequently:

show jobs all | match commit
show jobs processed id 3041
show jobs all type Commit

Always commit with a description. A description turns a wall of identical commit jobs into a searchable timeline, and during an incident the difference between "commit job 3041 failed" and "commit 'added DMZ rule 2024-11-04' failed" is the difference between ten minutes and an hour.

Step 3: Open the Right Log

  • ms.log - management server log on the firewall. The message "client device reported Phase 1 Failed" means the commit was accepted until the device server tried to apply it; the concrete error (often a NAT or policy parse problem) appears a few lines later.
  • devsrvr.log - device server log, for enforcement-side failures and anything the management server could not explain.
  • configd.log - used when a Panorama push (commit-all to devices) fails.
less mp-log ms.log
less mp-log devsrvr.log
less mp-log configd.log

! Panorama side
debug management-server on
less mp-log configd.log
show management-clients

Two reading habits matter here. First, the informative line is often below the headline: "Phase 1 Failed" is a pointer, and the actual cause - a specific object that could not be parsed, or a reference that resolved to nothing - is usually a few lines further down. Second, grep by job ID where you can, because a busy firewall's ms.log interleaves several commits and the surrounding lines may belong to a different one.

grep 'jobid 3041' mp-log/ms.log
tail -200 mp-log/devsrvr.log

Infrastructure Failures That Block Every Commit

  1. Device stuck in "Not Ready": show system software status shows a stopped process - historically cdb stopping leaves commits failing with "all daemons are not available".
  2. Full log partition: show system disk-space - when /opt/panlogs fills, commits and autocommit jobs fail; clear or offload logs, then reduce the traffic/threat log quota slightly.
  3. Panorama commit lock not released: disable automatic acquisition of the commit lock in management settings, then commit manually.
  4. Version skew: Panorama must be at the same or a higher PAN-OS release than the firewalls and log collectors it manages.
  5. Pending local changes on a managed firewall: exclude "merge with device candidate config" on push, or reconcile the local edits first.

The signature that separates this category from a config error is that nothing commits - not a trivial change, not an empty commit. If a firewall rejects every commit including ones that were previously accepted, stop reading your configuration and start reading process and disk state.

Disk Space, Log Quotas and the Silent Commit Killer

A full /opt/panlogs partition is one of the most common causes of "suddenly nothing commits", and it is invisible in the commit dialog. The mechanism is simple: PAN-OS writes commit state, and various management logs, to the same storage, and when the partition is full the write fails and the commit aborts with a generic error.

show system disk-space
show system disk-space | match panlogs
request system logdb cleanup 30      ! remove sessions older than 30 days
request logdb cleanup query "(receive_time leq '2026/08/01')"

The durable fix is not a periodic cleanup but a quota review. Traffic and threat log quotas that were sized for a smaller link fill the partition far faster once throughput rises. Reduce the quota slightly, or configure log forwarding to an external collector so the local database is a buffer rather than a permanent store.

HA Pairs and Commit Behaviour

On an active/passive pair, a commit triggered from the active firewall is synchronised to the passive peer, and that synchronisation is itself a job that can fail. Two consequences are worth internalising:

  • A commit that succeeds locally can still fail to synchronise. The active device shows the change, the passive does not, and a failover then returns the pair to the previous configuration. Always confirm the peer's job list after a significant change.
  • Version skew between peers blocks the sync even when both devices individually commit fine. If a maintenance upgrade stalled on one node, expect configuration sync problems until both are reconciled.
show high-availability state
show high-availability state-synchronization
show jobs all | match HA

This is the operational reason a config backup before a risky change is not optional. A half-applied commit is much easier to reason about when you can compare the running configuration against a known-good file.

Panorama Push Specifics

When the failure originates from Panorama rather than a local firewall, the diagnostic path shifts to the management server. The device-side ms.log is not where a push fails; the management-side logs are.

! Panorama
show jobs all
show jobs processed
tail follow yes mp-log configd.log
show management-clients
request push to devices   ! or use commit-all from the GUI

The two failure classes that dominate Panorama pushes are template/device-group variable resolution (a variable referenced but not defined for that device) and local changes on the managed firewall that conflict with the pushed configuration. Both are visible in configd.log with an error naming the device.

Preventive Routine

  • Always commit with a description so show jobs all is readable during an incident.
  • Keep a config backup off-box before a risky change; a commit that half-applied is much easier to reason about with a known-good file in hand.
  • Validate on the target version: a configuration that validates on 10.x may fail semantically on 11.x.
  • Watch disk space as part of routine monitoring - it is the cheapest early warning for "suddenly nothing commits".
  • Confirm HA synchronisation after every significant commit on a pair, not only after upgrades.
  • Keep Panorama and managed firewalls on aligned releases to avoid version-skew commit failures.

FAQ

Why does the commit fail with no error text at all? When the failure is infrastructure - a stopped daemon or a full partition - PAN-OS often has nothing to say in the dialog because the failure is not a configuration problem. That is the signal to leave the GUI entirely and read system state: show system software status and show system disk-space resolve a large share of these cases.

Is a validate failure always fatal? Validation errors block a commit; validation warnings do not. Application-dependency warnings are the classic example - they warn that a rule may not behave as intended but let the commit proceed. Read them, decide, and commit.

Can a commit succeed and the configuration still not take effect? Yes, on an HA pair, if the local commit succeeded and the peer synchronisation failed, a subsequent failover reverts to the peer's older configuration. Verify synchronisation state after significant changes.

What is the fastest recovery when nothing commits? Check disk space and process state first, in that order. If both are clean, run validate full and read the error - the fork between infrastructure and configuration is usually obvious within two commands.

Related reading: Palo Alto CLI troubleshooting commands, Upgrading a Palo Alto HA pair (active/passive), Palo Alto configuration backup and Palo Alto site-to-site IPsec VPN CLI configuration.

原文链接:Palo Alto Networks KB: identifying the commit failure reason