The command listed at <https://hub.meltano.com/orc...
# plugins-general
t
The command listed at https://hub.meltano.com/orchestrators/airflow/ to install airflow fails
Copy code
[tanner@sato ubb-meltano]$ meltano add --plugin-type orchestrator airflow
Added orchestrator 'airflow' to your project
Variant:	apache (default)
Repository:	<https://github.com/apache/airflow>
Documentation:	<https://hub.meltano.com/orchestrators/airflow--apache>

Added required file bundle 'files-airflow' to your project
Variant:	meltano (default)
Repository:	<https://github.com/meltano/files-airflow>
Documentation:	<https://hub.meltano.com/files/files-airflow--meltano>

2025-08-11T16:32:11.449729Z [info     ] Installing orchestrator 'airflow'
2025-08-11T16:32:11.459283Z [info     ] Installing file bundle 'files-airflow'
2025-08-11T16:32:11.592728Z [info     ] Logged uv pip install output to /home/tanner/Projects/ubb-meltano/.meltano/logs/pip/orchestrators/airflow/pip.log
2025-08-11T16:32:11.592891Z [error    ] Orchestrator 'airflow' could not be installed: Failed to install plugin 'airflow'. details='error: Error while accessing remote requirements file: `<https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.13.txt>`\n'
2025-08-11T16:32:11.856125Z [info     ] Installed file bundle 'files-airflow'
2025-08-11T16:32:11.863035Z [info     ] Adding 'files-airflow' files to project...
2025-08-11T16:32:11.863823Z [info     ] File 'orchestrate/dags/meltano.py' already exists, keeping both versions
2025-08-11T16:32:11.864000Z [warning  ] Installed 1/2 plugins         
2025-08-11T16:32:11.864650Z [error    ] Need help fixing this problem? Visit <http://melta.no/> for troubleshooting steps, or to join our friendly Slack community.

Failed to install plugin(s)
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/tanner/.local/share/pipx/venvs/meltano/lib64/python3.13/site-packages/meltano/cli/__init__ │
│ .py:105 in _run_cli                                                                              │
│                                                                                                  │
│   102 │   """                                                                                    │
│   103 │   try:                                                                                   │
│   104 │   │   try:                                                                               │
│ ❱ 105 │   │   │   cli(obj={"project": None})                                                     │
│   106 │   │   except ProjectReadonly as err:                                                     │
│   107 │   │   │   raise CliError(                                                                │
│   108 │   │   │   │   f"The requested action could not be completed: {err}",  # noqa: EM102      │
│                                                                                                  │
│ /home/tanner/.local/share/pipx/venvs/meltano/lib64/python3.13/site-packages/click/core.py:1161   │
│ in __call__                                                                                      │
│                                                                                                  │
│   1158 │                                                                                         │
│   1159 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                           │
│   1160 │   │   """Alias for :meth:`main`."""                                                     │
│ ❱ 1161 │   │   return self.main(*args, **kwargs)                                                 │
│   1162                                                                                           │
│   1163                                                                                           │
│   1164 class Command(BaseCommand):                                                               │
│                                                                                                  │
│                                     ... 13 frames hidden ...                                     │
│                                                                                                  │
│ /usr/lib64/python3.13/asyncio/base_events.py:725 in run_until_complete                           │
│                                                                                                  │
│    722 │   │   if not future.done():                                                             │
│    723 │   │   │   raise RuntimeError('Event loop stopped before Future completed.')             │
│    724 │   │                                                                                     │
│ ❱  725 │   │   return future.result()                                                            │
│    726 │                                                                                         │
│    727 │   def stop(self):                                                                       │
│    728 │   │   """Stop running the event loop.                                                   │
│                                                                                                  │
│ /home/tanner/.local/share/pipx/venvs/meltano/lib64/python3.13/site-packages/meltano/cli/add.py:2 │
│ 22 in add                                                                                        │
│                                                                                                  │
│   219 │                                                                                          │
│   220 │   if success is False:                                                                   │
│   221 │   │   tracker.track_command_event(CliEvent.failed)                                       │
│ ❱ 222 │   │   raise CliError("Failed to install plugin(s)")  # noqa: EM101                       │
│   223 │                                                                                          │
│   224 │   _print_plugins(plugins)                                                                │
│   225 │   tracker.track_command_event(CliEvent.completed)                                        │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
CliError: Failed to install plugin(s)
v
throw "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.13.txt 404's" into chatgpt and it gives a good answer, wish i could share it easily 😄
image.png
t
Yeah I ended up installing it manually via pip. Just thought the Meltano guys would want to know that something needs fixing on their end
💯 1
e
Ok, so it 404s because the 2.x line doesn't support Python 3.13 and the file just doesn't exist 🫤