Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug] - Additional package menu with textual

Open
#4,187 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python
Domain
cli

Research direction

Start with archinstall/tui/ui/components.py at _exec_callback, then reproduce the Additional packages → back → exit sequence and inspect the traceback around screen dismissal. Compare the worker and event-loop behavior shown in the report. Done means the sequence exits without the RuntimeError, follow-up AttributeError, or unawaited-coroutine warnings.

Written by the indexing model from the issue text.

Description

Which ISO version are you using?

--

The installation log
Task exception was never retrieved
future: <Task finished name='Task-28' coro=<Worker._run() done, defined at /home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/worker.py:358> exception=AttributeError("'AwaitComplete' object has no attribute '_pre_await'")>
Traceback (most recent call last):
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/worker.py", line 370, in _run
    self._result = await self.run()
                   ^^^^^^^^^^^^^^^^
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/worker.py", line 354, in run
    return await (
           ^^^^^^^
        self._run_threaded() if self._thread_worker else self._run_async()
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/worker.py", line 326, in _run_threaded
    return await loop.run_in_executor(None, runner, self._work)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/concurrent/futures/thread.py", line 86, in run
    result = ctx.run(self.task)
  File "/usr/lib/python3.14/concurrent/futures/thread.py", line 73, in run
    return fn(*args, **kwargs)
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/worker.py", line 309, in run_callable
    return work()
  File "/home/celestifyx/Desktop/archinstall/archinstall/tui/ui/components.py", line 113, in _exec_callback
    _ = self.dismiss(Result(ResultType.Selection, _data=result))
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/screen.py", line 1913, in dismiss
    await_pop = self.app.pop_screen()
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/app.py", line 2991, in pop_screen
    return AwaitComplete(do_pop()).call_next(self)
           ~~~~~~~~~~~~~^^^^^^^^^^
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/await_complete.py", line 29, in __init__
    self._future: Future[Any] = gather(*awaitables)
                                ~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3.14/asyncio/tasks.py", line 876, in gather
    fut = ensure_future(arg, loop=loop)
  File "/usr/lib/python3.14/asyncio/tasks.py", line 730, in ensure_future
    loop = events.get_event_loop()
  File "/usr/lib/python3.14/asyncio/events.py", line 715, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
                       % threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'asyncio_0'.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/worker.py", line 384, in _run
    app._handle_exception(worker_failed)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/app.py", line 3153, in _handle_exception
    self._fatal_error()
    ~~~~~~~~~~~~~~~~~^^
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/app.py", line 3160, in _fatal_error
    traceback = Traceback(
        show_locals=True, width=None, locals_max_length=5, suppress=[rich]
    )
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/rich/traceback.py", line 321, in __init__
    trace = self.extract(
        exc_type, exc_value, traceback, show_locals=show_locals
    )
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/rich/traceback.py", line 581, in extract
    key: pretty.traverse(
         ~~~~~~~~~~~~~~~^
        value,
        ^^^^^^
    ...<2 lines>...
        max_depth=locals_max_depth,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/rich/pretty.py", line 874, in traverse
    node = _traverse(_object, root=True)
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/rich/pretty.py", line 667, in _traverse
    args = list(iter_rich_args(rich_repr_result))
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/rich/pretty.py", line 634, in iter_rich_args
    for arg in rich_args:
               ^^^^^^^^^
  File "/home/celestifyx/Desktop/archinstall/.venv/lib/python3.14/site-packages/textual/await_complete.py", line 35, in __rich_repr__
    yield "pre_await", self._pre_await, None
                       ^^^^^^^^^^^^^^^
AttributeError: 'AwaitComplete' object has no attribute '_pre_await'
<sys>:0: RuntimeWarning: coroutine 'App.pop_screen.<locals>.do_pop' was never awaited
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
describe the problem
Description of the issue

Step: run archinstall -> Additional packages -> back -> exit

Dominant language
Python
Stars
8.5k
Forks
774
Avg merge
4d 17h
Merged PRs (30d)
30

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from archlinux/archinstall

All issues in archlinux/archinstall

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.