> For the complete documentation index, see [llms.txt](https://platform9.com/kb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://platform9.com/kb/pcd/compute/missing-barbican-section-in-nova.conf-causes-host-upgrade-convergence-failure-during-pcd-upgrade.md).

# Missing \[barbican] Section in nova.conf Causes Host Upgrade Convergence Failure During PCD Upgrade

## Problem

One or more hosts fail to converge during a Private Cloud Director (PCD)  host upgrade and remain offline or stuck in a failed upgrade state in the Management Plane.

Observed symptoms may include:

* Host upgrade failure during reconciliation.
* Host shown offline/unreachable in the Management Plane.
* Upgrade unable to proceed for the affected node.
* Repeated `pf9-ostackhost:get_config failed: 'barbican'` errors in hostagent logs.
* Missing `[barbican]` section in `nova.conf`.

Example log entries in `/var/log/pf9/hostagent.log`:

```bash
pf9_app.py ERROR - pf9-ostackhost:get_config failed: 'barbican'session.py ERROR - Bad message, app config or reading current app config
```

## Environment

* Private Cloud Director Virtualization - v2025.4 and Higher
* Private Cloud Director Kubernetes – v2025.4 and Higher
* Self-Hosted Private Cloud Director Virtualization - v2025.4 and Higher
* Self-Hosted Private Cloud Director Kubernetes - v2025.4 and Higher

## Cause

This issue is caused by a reconciliation sequencing issue during the upgrade process.

During the upgrade, the reconciliation process fails before the `[barbican]` configuration section is written into the `nova.conf` file. As a result, the `pf9-ostackhost` application fails repeatedly during configuration reconciliation and the host does not converge successfully.

## Diagnostics

* Check hostagent logs for Barbican reconciliation failures

```shellscript
grep -i -C5 barbican /var/log/pf9/pf9-hostagent.log
```

Expected error:

```
pf9-ostackhost:get_config failed: 'barbican'
```

* Verify whether the `[barbican]` section exists

```
grep -C5 "\[barbican\]" /opt/pf9/etc/nova/conf.d/nova.conf
```

If no output is returned, the section is missing.

## Resolution

* Step 1: Copy the `[barbican]` section from a healthy node

From a healthy upgraded node, copy the complete `[barbican]` section from:

```bash
/opt/pf9/etc/nova/conf.d/nova.conf
```

Example:

```bash
[barbican]
barbican_region_name = [REGION_NAME]
auth_url = http://localhost:8158/keystone/v3
barbican_endpoint_type = admin
```

#### Step 2: Paste the `[barbican]` section into the affected node

Add the copied section into:

```bash
/opt/pf9/etc/nova/conf.d/nova.conf
```

#### Step 3: Verify whether the host converges automatically

Monitor the hostagent logs:

```bash
tail -f /var/log/pf9/pf9-hostagent.log
```

Check whether the host becomes healthy in the Management Plane.

#### Step 4: Restart services if the host does not converge automatically

Restart the following services on the affected host:

```bash
systemctl restart pf9-hostagent
systemctl restart pf9-ostackhost
```

#### Step 5: Verify host convergence

Confirm:

* Host becomes online in the Management Plane.
* Upgrade stage completes successfully.
* Reconciliation errors no longer appear in logs.

## Validation

Validate the following after remediation:

* Host status becomes healthy/online.
* Upgrade workflow completes successfully.
* `/var/log/pf9/hostagent.log` no longer reports:
  * `pf9-ostackhost:get_config failed: 'barbican'`
* `[barbican]` section exists in `nova.conf`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://platform9.com/kb/pcd/compute/missing-barbican-section-in-nova.conf-causes-host-upgrade-convergence-failure-during-pcd-upgrade.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
