From e2f578fde5930c644ef0e5846eef902ea3680e10 Mon Sep 17 00:00:00 2001 From: wmair Date: Thu, 19 Mar 2026 17:16:44 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20MAS=20adminapi=20listener=20missing=20?= =?UTF-8?q?=E2=80=94=20Element=20Admin=20panel=20broken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add `adminapi` resource to MAS HTTP listener in deploy.sh and quickstart.sh. Without it, MAS never served /api/admin/v1/... causing Element Admin to always throw TypeError: Failed to fetch. Updated docs and added regression test. Co-Authored-By: Claude Sonnet 4.6 --- BUGFIXES.md | 1 + QUICK_REFERENCE.md | 1 + deploy.sh | 1 + quickstart.sh | 1 + test_deploy.sh | 2 ++ 5 files changed, 6 insertions(+) diff --git a/BUGFIXES.md b/BUGFIXES.md index 3f9b4da..dbafc9a 100644 --- a/BUGFIXES.md +++ b/BUGFIXES.md @@ -78,6 +78,7 @@ http: - name: graphql playground: true - name: assets # ← Critical: This is required! + - name: adminapi # ← Required for Element Admin panel binds: - address: '[::]:8080' ``` diff --git a/QUICK_REFERENCE.md b/QUICK_REFERENCE.md index a35b5be..c4eee63 100644 --- a/QUICK_REFERENCE.md +++ b/QUICK_REFERENCE.md @@ -198,5 +198,6 @@ docker compose restart mas | `homeserver.domain not configured` (bridge) | Run `setup-bridges.sh` | | `as_token was not accepted` | Registration not loaded in Synapse — check `homeserver.yaml` | | MAS CSS missing | Add `- name: assets` to MAS listener resources | +| Element Admin: `TypeError: Failed to fetch` | Add `- name: adminapi` to MAS listener resources | | `Template rendered to empty string` | Set `fetch_userinfo: true` in MAS upstream provider | | Bridge: `Connection refused` | Bridge hostname is 127.0.0.1 — must be 0.0.0.0 in config | diff --git a/deploy.sh b/deploy.sh index d527e85..65ea060 100755 --- a/deploy.sh +++ b/deploy.sh @@ -734,6 +734,7 @@ http: - name: graphql playground: true - name: assets # Required for CSS/JS files + - name: adminapi binds: - address: '[::]:8080' - name: internal diff --git a/quickstart.sh b/quickstart.sh index 4a5f64d..52a5275 100755 --- a/quickstart.sh +++ b/quickstart.sh @@ -134,6 +134,7 @@ http: - name: graphql playground: true - name: assets + - name: adminapi binds: - address: '[::]:8080' - name: internal diff --git a/test_deploy.sh b/test_deploy.sh index 5c4a070..1247e8f 100755 --- a/test_deploy.sh +++ b/test_deploy.sh @@ -154,6 +154,8 @@ assert_configs() { assert_file "mas/config/config.yaml" "mas/config/config.yaml generated" assert_contains "mas/config/config.yaml" \ "homeserver: '${server_name}'" "MAS → homeserver" + assert_contains "mas/config/config.yaml" \ + "name: adminapi" "MAS → adminapi listener present" # Element Web config (heredoc format has spaces: `"key": "value"`) assert_file "element/config/config.json" "element/config/config.json generated"