> For the complete documentation index, see [llms.txt](https://docs.openiam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openiam.com/troubleshooting/message-broker/2-rabbitmq-ui.md).

# RabbitMQ is not reached from UI in RPM installations

Reaching the RabbitMQ management UI through OpenIAM on an RPM deployment, by routing it with a content provider.

| Symptom                                                                      | Likely cause                                                                                                 | Resolution                              |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| `/rabbitmq` returns nothing, or an authorization error, on an RPM deployment | The content provider has no route to the broker's management port, or its static paths require authorization | Route it with a content provider, below |

The management UI runs on the broker's own port, which the installer does not publish. Rather than opening that port, route it through the content provider that already fronts OpenIAM.

{% hint style="info" %}
The broker's management port is deliberately not opened in the firewall. If you only need it once, an SSH tunnel is quicker than configuring a route.
{% endhint %}

## Route the management UI

Two patterns carry the management UI itself — `/rabbitmq/*` and `/rabbitmq` — and each needs both an application path and an application server. They are set on the same screen, so do one pattern completely, then the other.

{% stepper %}
{% step %}
**Open the content provider.** Go to **Access Control** → **Content Providers** (`/webconsole/contentProviders`), find the one that fronts OpenIAM on this host and click **Edit**.
{% endstep %}

{% step %}
**Open the first pattern.** In the provider's **URI Patterns** section, click **Edit** on `/rabbitmq/*`. If the patterns are not there yet, **Create New URI Pattern** makes them.
{% endstep %}

{% step %}
**Set the application path** to the broker's prefix:

```
/rabbitmq
```

{% hint style="warning" %}
**This is not the pattern.** The pattern is `/rabbitmq/*`; the application path is `/rabbitmq`. Paste the pattern in here and the save is rejected with `Invalid application Path. The path must begin with '/' and must not contain '*' characters.`
{% endhint %}
{% endstep %}

{% step %}
**Add the application server**, further down the same screen. Under **Application Servers**, **Add** a **Server URL** pointing at the broker's management port:

```
http://<broker-host>:15672
```

{% hint style="info" %}
**A pattern with no server of its own inherits the content provider's** — the screen says so when the list is empty: `Server URLs will be inherited from the Content Provider.` Those point at OpenIAM rather than at the broker, which is why the route has to be given one here.
{% endhint %}
{% endstep %}

{% step %}
**Save, then repeat for `/rabbitmq`.** Both patterns need the application path and the application server; setting only one of them routes some requests and not others.
{% endstep %}

{% step %}
**Add the asset patterns.** The management UI's scripts, stylesheets and images are fetched without an OpenIAM session, so they need patterns of their own with authorization off. Use **Create New URI Pattern** for each of:

```
/js/*
/css/*
/api/*
/img/*
```

Tick **Is Authorization Deactivated** on each. Leave authorization on and the page loads blank — the HTML arrives, everything it references is refused.
{% endstep %}

{% step %}
**Save, then check the route.**

```
http(s)://<openiam-host>/rabbitmq
```

{% endstep %}
{% endstepper %}


---

# 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://docs.openiam.com/troubleshooting/message-broker/2-rabbitmq-ui.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.
