# Namespace: mmul-it

**URL:** <https://forum.ansible.com/t/namespace-mmul-it/45861>\
**Category:** Galaxy Namespace Requests\
**Tags:** resolved, galaxy-nspace-request\
**Created:** [May 29, 2026, 10:44am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861 "2026-05-29T10:44:24Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [May 29, 2026, 10:44am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/1 "2026-05-29T10:44:24Z")

</div>

## Namespace Request

Namespace: mmul-it

## Description

Roles published by [MiaMammaUsaLinux.org](http://MiaMammaUsaLinux.org)

## GitHub Org Link

> **[MMUL](https://github.com/mmul-it/)**
>
> MMUL has 14 repositories available. Follow their code on GitHub.

## Admins

rascasoft

I would like to ask you for rename the role namespace `mmul` to `mmul-it` only. If it’s not possible, just create the mmul-it namespace so I can upload roles there.

---

<div class="post-metadata">

**Author:** ![dbrennand](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/dbrennand/32/7830_2.png) [@dbrennand](https://forum.ansible.com/u/dbrennand)\
**Post date:** [June 1, 2026, 9:06am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/2 "2026-06-01T09:06:57Z")

</div>

Hi @rascasoft

Thank you for submitting this namespace request.

Two things:

1. Due to Galaxy namespace naming limitations, the name of the namespace cannot have a `-` in it, please confirm if you’re happy with `mmul_it` for the namespace name?
2. We cannot rename an existing role namespace.

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 1, 2026, 9:41am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/3 "2026-06-01T09:41:57Z")

</div>

Hi @dbrennand, many thanks for your answer.

I’m unable to import new versions of the role because my GitHub projects are under `https://github.com/mmul-it/` and if I try to import, by a GitHub action or by hand I get a 500:

```auto
$ ansible-galaxy role import --token $GTOKEN --branch main mmul-it kpa_generator
ERROR! None (HTTP Code: 500, Message: Internal Server Error)

```

If I instead try to use the actual role namespace which is `mmul` I get:

```console
$ ansible-galaxy role import --token $GTOKEN --branch main mmul kpa_generator
Successfully submitted import request 2152258394498257967616849651627835768
Starting import: task_id=2152258394498257967616849651627835768, pulp_id=019e8288-15ed-7704-9e46-27e3f875c178

==== PARAMETERS ====
importer username: rascasoft
matched user: rascasoft id:4599
github_user: mmul
github_repo: kpa_generator
github_reference: main
alternate_clone_url: None
alternate_namespace_name: None
alternate_role_name: None

==== CHECK FOR MATCHING ROLE(S) ====
user:mmul repo:kpa_generator did not match any existing roles

===== CLONING REPO =====
cloning https://github.com/mmul/kpa_generator ...
cloning failed: Cloning into '/tmp/tmp_hug85ut/kpa_generator'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled

```

Because I don’t own GitHub `mmul` and my sources are under `mmul-it`.

So creating `mmul_it` with the underscore would not solve the problem. In the past I always used just `mmul`, but then I deleted the role namespace `mmul-it` and everything broke. The `id` was `4753` and I deleted it via:

```auto
$ curl -H "Authorization: token $GTOKEN" -X DELETE https://galaxy.ansible.com/api/v1/namespaces/4735/

```

My need is just to import sources from `https://github.com/mmul-it/kpa_generator` into `mmul`.

Is there a way to solve this? In the past, at some point, we solved it (see [Unable to import roles anymore: namespace different from github organization - #19 by rascasoft](https://forum.ansible.com/t/unable-to-import-roles-anymore-namespace-different-from-github-organization/2737/19)), but in the end I feel like it was because of the existence of the `mmul-it` namespace role.

Can you help me fix this?

Many thanks!

Raoul

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 3, 2026, 1:49pm UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/4 "2026-06-03T13:49:26Z")

</div>

Any news @dbrennand ?

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 4, 2026, 3:24pm UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/5 "2026-06-04T15:24:05Z")

</div>

I feel like me deleting the mmul-it namespace somehow broke the relation that was created here by @tannerjc: [Unable to import roles anymore: namespace different from github organization - #8 by tannerjc](https://forum.ansible.com/t/unable-to-import-roles-anymore-namespace-different-from-github-organization/2737/8) because he set [mmul](https://galaxy.ansible.com/ui/namespaces/mmul/) as the provider of [mmul-it](https://galaxy.ansible.com/ui/standalone/namespaces/4735/), and maybe now that mmul-it doesn’t exists anymore this setting got lost.  
Can we recreate it?

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 8, 2026, 10:10am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/6 "2026-06-08T10:10:30Z")

</div>

@dbrennand @tannerjc can you please have a look at this since I am blocked in pushing new versions? Many thanks!

---

<div class="post-metadata">

**Author:** ![oranod](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/oranod/32/1434_2.png) [@oranod](https://forum.ansible.com/u/oranod)\
**Post date:** [June 8, 2026, 10:50am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/7 "2026-06-08T10:50:24Z")

</div>

Hey @rascasoft

I’ve looked into this and will try to summarise:

When you deleted the `mmul-it` legacy namespace via the API, it removed the namespace that Galaxy uses during the initial step of role imports that resolves your `github_user` (`mmul-it`) to a `LegacyNamespace`. That resolution happens before any of the override mechanisms from [galaxy\_ng#2011](https://github.com/ansible/galaxy_ng/pull/2011) (the `namespace` field in `meta/main.yml` or the `alternate_namespace_name` API parameter) get a chance to run. That’s why you’re seeing a 500 error. The import task fails during that initial lookup.

Unfortunately there isn’t a user-side workaround for this. The override logic that @tannerjc added can remap you to a different namespace, but it needs the initial namespace resolution to succeed first, which requires `mmul-it` to exist as a `LegacyNamespace`.

The fix is to recreate the `mmul-it` legacy namespace in the database and re-establish `mmul` as its provider. That legacy namespace predates the [current hyphen restriction](https://docs.ansible.com/projects/galaxy-ng/en/latest/usage_guide/collections.html#namespace-limitations) so it cannot be recreated through the normal means.

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 8, 2026, 11:22am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/8 "2026-06-08T11:22:21Z")

</div>

Thanks for taking the time to explain this @oranod , but it’s not clear to me what should I do to fix the problem.

---

<div class="post-metadata">

**Author:** ![oranod](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/oranod/32/1434_2.png) [@oranod](https://forum.ansible.com/u/oranod)\
**Post date:** [June 8, 2026, 11:45am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/9 "2026-06-08T11:45:20Z")

</div>

No problem, @rascasoft I’m aware that you’re blocked on pushing new versions but since the issue is that the `mmul-it` namespace no longer exists there isn’t a fix on your side. I’ll get back to you about this.

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 15, 2026, 12:02pm UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/10 "2026-06-15T12:02:07Z")

</div>

@oranod any news on this?

---

<div class="post-metadata">

**Author:** ![dbrennand](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/dbrennand/32/7830_2.png) [@dbrennand](https://forum.ansible.com/u/dbrennand)\
**Post date:** [June 16, 2026, 7:56am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/11 "2026-06-16T07:56:16Z")

</div>

Hey @rascasoft

Could you please try using the `alternate_clone_url` via the Galaxy REST API.

I think the below command is correct, you want the role in GitHub repository: [GitHub - mmul-it/kpa\_generator: KPA slides generator Ansible role · GitHub](https://github.com/mmul-it/kpa_generator) to exist in the `mmul` role namespace on Galaxy with the role name `kpa_generator`:

```auto
curl -X 'POST' \
  "https://galaxy.ansible.com/api/v1/imports/" \
  -H 'accept: application/json' \
  -H "Authorization: Token ${GTOKEN}" \
  --data-raw '{"github_repo": "kpa_generator", "github_user": "mmul", "alternate_clone_url": "https://github.com/mmul-it/kpa_generator"}'

```

Can you try this please?

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 16, 2026, 8:28am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/12 "2026-06-16T08:28:02Z")

</div>

Hi @dbrennand , still no success:

```console
$ curl -X 'POST' "https://galaxy.ansible.com/api/v1/imports/" \
  -H 'accept: application/json' \
  -H "Authorization: Token ${GTOKEN}" \
  --data-raw '{"github_repo": "kpa_generator", "github_user": "mmul", "alternate_clone_url": "https://github.com/mmul-it/kpa_generator"}'

<!doctype html>
<html lang="en">
<head>
  <title>Server Error (500)</title>
</head>
<body>
  <h1>Server Error (500)</h1><p></p>
</body>
</html>

```

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [June 16, 2026, 8:38am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/13 "2026-06-16T08:38:54Z")

</div>

Wait @dbrennand , changing the curl in this way fixed the problem:

```console
$ curl -X 'POST' "https://galaxy.ansible.com/api/v1/imports/" \
  -H 'Content-Type: application/json' \
  -H "Authorization: Token ${GTOKEN}" \
  --data-raw '{"github_repo": "kpa_generator", "github_user": "mmul", "alternate_clone_url": "https://github.com/mmul-it/kpa_generator"}'
{"results":[{"id":2153821008210868407066805016595163860,"pulp_id":"019ecf93-0b25-721e-864e-c5838bda6ad4","github_user":"mmul","github_repo":"kpa_generator","github_reference":null,"alternate_namespace_name":null,"alternate_role_name":null,"alternate_clone_url":"https://github.com/mmul-it/kpa_generator","summary_fields":{"role":{"name":null}}}]}

```

So with `-H 'Content-Type: application/json'` it seems to work. Thanks for showing me this magic secret option 🙂

---

<div class="post-metadata">

**Author:** ![dbrennand](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/dbrennand/32/7830_2.png) [@dbrennand](https://forum.ansible.com/u/dbrennand)\
**Post date:** [June 16, 2026, 8:41am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/14 "2026-06-16T08:41:39Z")

</div>

Excellent news!

Ah yes sorry about that, an oversight on my part. The `Content-Type: application/json` header just tells Galaxy that our payload is in JSON format.

Glad it is working! And thanks for spotting that because it may help with another thread!

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [July 23, 2026, 7:41am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/15 "2026-07-23T07:41:03Z")

</div>

Hey @dbrennand sorry to open again this thread, but just today I realized that something is still missing in this configuration, because if I do a manual import I get this:

```auto
> ansible-galaxy role install mmul.kpa_generator
Starting galaxy role install process
- downloading role 'kpa_generator', owned by mmul
- downloading role from https://github.com/mmul/kpa_generator/archive/v1.0.0.tar.gz
 [ERROR]: failed to download the file: HTTP Error 404: Not Found
[WARNING]: - mmul.kpa_generator was NOT installed successfully.
ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.

```

As you can see the association between the GitHub repo still relies on `mmul` instead of `mmul-it`. Is this something you can fix as before?

Many thanks!

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [July 27, 2026, 9:44am UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/16 "2026-07-27T09:44:17Z")

</div>

@oranod @dbrennand can you give me a hand here since I’m blocked? Many thanks!

---

<div class="post-metadata">

**Author:** ![rascasoft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rascasoft/32/1701_2.png) [@rascasoft](https://forum.ansible.com/u/rascasoft)\
**Post date:** [July 27, 2026, 4:07pm UTC](https://forum.ansible.com/t/namespace-mmul-it/45861/17 "2026-07-27T16:07:59Z")

</div>

> [@rascasoft](#):
>
> ```auto
> > ansible-galaxy role install mmul.kpa_generator
> Starting galaxy role install process
> - downloading role 'kpa_generator', owned by mmul
> - downloading role from https://github.com/mmul/kpa_generator/archive/v1.0.0.tar.gz
> [ERROR]: failed to download the file: HTTP Error 404: Not Found
> 
> ```

I was able to resolve the issue by myself (or I should say, by using ChatGPT), maybe it could be useful for someone having the same problem:

```auto
> curl -i \
  -X PUT \
  -H "Authorization: Token $GALAXY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "github_user": "mmul-it",
    "github_repo": "kpa_generator",
    "github_branch": "main"
  }' \
  https://galaxy.ansible.com/api/v1/roles/35160/

```

So I basically modified the `github_user` into `mmul-it`, and now the install works as expected:

```auto
> ansible-galaxy role install mmul.kpa_generator
Starting galaxy role install process
- downloading role 'kpa_generator', owned by mmul
- downloading role from https://github.com/mmul-it/kpa_generator/archive/v1.0.0.tar.gz
- extracting mmul.kpa_generator to /home/rasca/.ansible/roles/mmul.kpa_generator
- mmul.kpa_generator (v1.0.0) was installed successfully

```
