Localization error in docker (container: bot)

2024-04-06 22:01:45 bot            | Traceback (most recent call last):
2024-04-06 22:01:45 bot            |   File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
2024-04-06 22:01:45 bot            |     return _run_code(code, main_globals, None,
2024-04-06 22:01:45 bot            |   File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
2024-04-06 22:01:45 bot            |     exec(code, run_globals)
2024-04-06 22:01:45 bot            |   File "/usr/src/app/bot/__main__.py", line 10, in <module>
2024-04-06 22:01:45 bot            |     from bot.core.loader import app, bot, dp
2024-04-06 22:01:45 bot            |   File "/usr/src/app/bot/core/loader.py", line 32, in <module>
2024-04-06 22:01:45 bot            |     i18n: I18n = I18n(path=LOCALES_DIR, default_locale="en", domain=I18N_DOMAIN)
2024-04-06 22:01:45 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/utils/i18n/core.py", line 24, in __init__
2024-04-06 22:01:45 bot            |     self.locales = self.find_locales()
2024-04-06 22:01:45 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/utils/i18n/core.py", line 73, in find_locales
2024-04-06 22:01:45 bot            |     raise RuntimeError(f"Found locale '{name}' but this language is not compiled!")
2024-04-06 22:01:45 bot            | RuntimeError: Found locale 'en' but this language is not compiled!
bot exited with code 1

System Information:

Operating System: Windows 11 version 23H2 (OS Build 22631.3374)
Docker Desktop version: 4.28.0 (139021)
Docker version: 25.0.3, build 4debf41

looks like the *.mo files were not compiled when docker container was launched.
try compile locales with a separate command like:
python -m pybabel compile -d bot/locales

and show output

looks like the *.mo files were not compiled when docker container was launched. try compile locales with a separate command like:
python -m pybabel compile -d bot/locales

and show output

/usr/src/app $ python -m pybabel compile -d bot/locales
/usr/local/bin/python: No module named pybabel

But if you manually enter the command from the docker runner pybabel compile -d bot/locales, then everything is ok.
/usr/src/app $ pybabel compile -d bot/locales
compiling catalog bot/locales/en/LC_MESSAGES/messages.po to bot/locales/en/LC_MESSAGES/messages.mo
compiling catalog bot/locales/ru/LC_MESSAGES/messages.po to bot/locales/ru/LC_MESSAGES/messages.mo
compiling catalog bot/locales/uk/LC_MESSAGES/messages.po to bot/locales/uk/LC_MESSAGES/messages.mo

It is strange that literally the same command from the docker runner, but entered manually, fixed the localization error.
But now there is another error related to the absence of the users table in the database
2024-04-07 00:02:50 bot            | 2024-04-06 21:02:50.140 | INFO     | bot.middlewares.logging:__call__:113 - received message | chat_type: private | user_id: 192005446 | text: /start
2024-04-07 00:02:50 postgres       | 2024-04-06 21:02:50.143 UTC [60] ERROR:  relation "users" does not exist at character 23
2024-04-07 00:02:50 postgres       | 2024-04-06 21:02:50.143 UTC [60] STATEMENT:  SELECT users.id
2024-04-07 00:02:50 postgres       |    FROM users
2024-04-07 00:02:50 postgres       |    WHERE users.id = $1::INTEGER
2024-04-07 00:02:50 postgres       |     LIMIT $2::INTEGER
2024-04-07 00:02:50 bot            | Cause exception while process update id=368611995 by bot id=6945255203
2024-04-07 00:02:50 bot            | ProgrammingError: (sqlalchemy.dialects.postgresql.asyncpg.ProgrammingError) <class 'asyncpg.exceptions.UndefinedTableError'>: relation "users" does not exist
2024-04-07 00:02:50 bot            | [SQL: SELECT users.id
2024-04-07 00:02:50 bot            | FROM users
2024-04-07 00:02:50 bot            | WHERE users.id = $1::INTEGER
2024-04-07 00:02:50 bot            |  LIMIT $2::INTEGER]
2024-04-07 00:02:50 bot            | [parameters: (192005446, 1)]
2024-04-07 00:02:50 bot            | (Background on this error at: https://sqlalche.me/e/20/f405)
2024-04-07 00:02:50 bot            | Traceback (most recent call last):
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 514, in _prepare_and_execute
2024-04-07 00:02:50 bot            |     prepared_stmt, attributes = await adapt_connection._prepare(
2024-04-07 00:02:50 bot            |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 765, in _prepare
2024-04-07 00:02:50 bot            |     prepared_stmt = await self._connection.prepare(
2024-04-07 00:02:50 bot            |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 636, in prepare
2024-04-07 00:02:50 bot            |     return await self._prepare(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 654, in _prepare
2024-04-07 00:02:50 bot            |     stmt = await self._get_statement(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 433, in _get_statement
2024-04-07 00:02:50 bot            |     statement = await self._protocol.prepare(
2024-04-07 00:02:50 bot            |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "asyncpg/protocol/protocol.pyx", line 166, in prepare
2024-04-07 00:02:50 bot            | asyncpg.exceptions.UndefinedTableError: relation "users" does not exist
2024-04-07 00:02:50 bot            |
2024-04-07 00:02:50 bot            | The above exception was the direct cause of the following exception:
2024-04-07 00:02:50 bot            |
2024-04-07 00:02:50 bot            | Traceback (most recent call last):
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1971, in _exec_single_context
2024-04-07 00:02:50 bot            |     self.dialect.do_execute(
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 919, in do_execute
2024-04-07 00:02:50 bot            |     cursor.execute(statement, parameters)
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 572, in execute
2024-04-07 00:02:50 bot            |     self._adapt_connection.await_(
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 131, in await_only
2024-04-07 00:02:50 bot            |     return current.driver.switch(awaitable)  # type: ignore[no-any-return]
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
2024-04-07 00:02:50 bot            |     value = await result
2024-04-07 00:02:50 bot            |             ^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 550, in _prepare_and_execute
2024-04-07 00:02:50 bot            |     self._handle_exception(error)
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 501, in _handle_exception
2024-04-07 00:02:50 bot            |     self._adapt_connection._handle_exception(error)
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 789, in _handle_exception
2024-04-07 00:02:50 bot            |     raise translated_error from error
2024-04-07 00:02:50 bot            | sqlalchemy.dialects.postgresql.asyncpg.AsyncAdapt_asyncpg_dbapi.ProgrammingError: <class 'asyncpg.exceptions.UndefinedTableError'>: relation "users" does not exist
2024-04-07 00:02:50 bot            |
2024-04-07 00:02:50 bot            | The above exception was the direct cause of the following exception:
2024-04-07 00:02:50 bot            |
2024-04-07 00:02:50 bot            | Traceback (most recent call last):
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 309, in _process_update
2024-04-07 00:02:50 bot            |     response = await self.feed_update(bot, update, **kwargs)
2024-04-07 00:02:50 bot            |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 158, in feed_update
2024-04-07 00:02:50 bot            |     response = await self.update.wrap_outer_middleware(
2024-04-07 00:02:50 bot            |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/error.py", line 25, in __call__
2024-04-07 00:02:50 bot            |     return await handler(event, data)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/user_context.py", line 27, in __call__
2024-04-07 00:02:50 bot            |     return await handler(event, data)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/fsm/middleware.py", line 41, in __call__
2024-04-07 00:02:50 bot            |     return await handler(event, data)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/src/app/bot/middlewares/logging.py", line 165, in __call__
2024-04-07 00:02:50 bot            |     return await handler(event, data)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/src/app/bot/middlewares/database.py", line 23, in __call__
2024-04-07 00:02:50 bot            |     return await handler(event, data)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 00:02:50 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
2024-04-07 00:02:50 bot            |     return await wrapped()
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 276, in _listen_update
2024-04-07 00:02:50 bot            |     return await self.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 00:02:50 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/src/app/bot/middlewares/throttling.py", line 27, in __call__
2024-04-07 00:02:50 bot            |     return await handler(event, data)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 00:02:50 bot            |     return await self._propagate_event(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 00:02:50 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 00:02:50 bot            |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 00:02:50 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 00:02:50 bot            |     return await self._propagate_event(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 00:02:50 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 00:02:50 bot            |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 00:02:50 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 00:02:50 bot            |     return await self._propagate_event(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 148, in _propagate_event
2024-04-07 00:02:50 bot            |     response = await observer.trigger(event, **kwargs)
2024-04-07 00:02:50 bot            |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 00:02:50 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/src/app/bot/middlewares/auth.py", line 34, in __call__
2024-04-07 00:02:50 bot            |     if await user_exists(session, user.id):
2024-04-07 00:02:50 bot            |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/src/app/bot/cache/redis.py", line 60, in wrapper
2024-04-07 00:02:50 bot            |     result = await func(*args, **kwargs)
2024-04-07 00:02:50 bot            |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/src/app/bot/services/users.py", line 47, in user_exists
2024-04-07 00:02:50 bot            |     result = await session.execute(query)
2024-04-07 00:02:50 bot            |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
2024-04-07 00:02:50 bot            |     result = await greenlet_spawn(
2024-04-07 00:02:50 bot            |              ^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
2024-04-07 00:02:50 bot            |     result = context.throw(*sys.exc_info())
2024-04-07 00:02:50 bot            |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2306, in execute
2024-04-07 00:02:50 bot            |     return self._execute_internal(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2191, in _execute_internal
2024-04-07 00:02:50 bot            |     result: Result[Any] = compile_state_cls.orm_execute_statement(
2024-04-07 00:02:50 bot            |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/context.py", line 293, in orm_execute_statement
2024-04-07 00:02:50 bot            |     result = conn.execute(
2024-04-07 00:02:50 bot            |              ^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1422, in execute
2024-04-07 00:02:50 bot            |     return meth(
2024-04-07 00:02:50 bot            |            ^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 514, in _execute_on_connection
2024-04-07 00:02:50 bot            |     return connection._execute_clauseelement(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1644, in _execute_clauseelement
2024-04-07 00:02:50 bot            |     ret = self._execute_context(
2024-04-07 00:02:50 bot            |           ^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1850, in _execute_context
2024-04-07 00:02:50 bot            |     return self._exec_single_context(
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1990, in _exec_single_context
2024-04-07 00:02:50 bot            |     self._handle_dbapi_exception(
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2357, in _handle_dbapi_exception
2024-04-07 00:02:50 bot            |     raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1971, in _exec_single_context
2024-04-07 00:02:50 bot            |     self.dialect.do_execute(
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 919, in do_execute
2024-04-07 00:02:50 bot            |     cursor.execute(statement, parameters)
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 572, in execute
2024-04-07 00:02:50 bot            |     self._adapt_connection.await_(
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 131, in await_only
2024-04-07 00:02:50 bot            |     return current.driver.switch(awaitable)  # type: ignore[no-any-return]
2024-04-07 00:02:50 bot            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
2024-04-07 00:02:50 bot            |     value = await result
2024-04-07 00:02:50 bot            |             ^^^^^^^^^^^^
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 550, in _prepare_and_execute
2024-04-07 00:02:50 bot            |     self._handle_exception(error)
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 501, in _handle_exception
2024-04-07 00:02:50 bot            |     self._adapt_connection._handle_exception(error)
2024-04-07 00:02:50 bot            |   File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 789, in _handle_exception
2024-04-07 00:02:50 bot            |     raise translated_error from error
2024-04-07 00:02:50 bot            | sqlalchemy.exc.ProgrammingError: (sqlalchemy.dialects.postgresql.asyncpg.ProgrammingError) <class 'asyncpg.exceptions.UndefinedTableError'>: relation "users" does not exist
2024-04-07 00:02:50 bot            | [SQL: SELECT users.id
2024-04-07 00:02:50 bot            | FROM users
2024-04-07 00:02:50 bot            | WHERE users.id = $1::INTEGER
2024-04-07 00:02:50 bot            |  LIMIT $2::INTEGER]
2024-04-07 00:02:50 bot            | [parameters: (192005446, 1)]
2024-04-07 00:02:50 bot            | (Background on this error at: https://sqlalche.me/e/20/f405)

the problem with the missing table is due to the fact that you did not perform the migration
docker compose exec bot alembic upgrade head

also, after starting the bot container, check whether the required package is installed using the command pip freeze:
pip freeze | grep Babel

Babel package is included in the dependencies (pyproject.toml). It's strange that in your case it is not visible

the problem with the missing table is due to the fact that you did not perform the migration
docker compose exec bot alembic upgrade head

Oh, really, I got stuck with these mistakes and even didn't pay attention to this step, My fall.
Now, the error is generally related to amplitude:
2024-04-07 17:27:19 bot            | 2024-04-07 14:27:19.341 | ERROR    | bot.analytics.amplitude.client:_validate_response:43 - get error from amplitude api | error: Invalid API key:  | code: 400
2024-04-07 17:27:19 bot            | Cause exception while process update id=368612008 by bot id=6945255203
2024-04-07 17:27:19 bot            | ValueError: Error in amplitude api call | error: Invalid API key:  | code: 400
2024-04-07 17:27:19 bot            | Traceback (most recent call last):
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 309, in _process_update
2024-04-07 17:27:19 bot            |     response = await self.feed_update(bot, update, **kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 158, in feed_update
2024-04-07 17:27:19 bot            |     response = await self.update.wrap_outer_middleware(
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/error.py", line 25, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/user_context.py", line 27, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/fsm/middleware.py", line 41, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/middlewares/logging.py", line 165, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/middlewares/database.py", line 23, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 17:27:19 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
2024-04-07 17:27:19 bot            |     return await wrapped()
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 276, in _listen_update
2024-04-07 17:27:19 bot            |     return await self.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 17:27:19 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/middlewares/throttling.py", line 27, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 17:27:19 bot            |     return await self._propagate_event(
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 17:27:19 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 17:27:19 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 17:27:19 bot            |     return await self._propagate_event(
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 17:27:19 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 17:27:19 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 17:27:19 bot            |     return await self._propagate_event(
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 148, in _propagate_event
2024-04-07 17:27:19 bot            |     response = await observer.trigger(event, **kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 17:27:19 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/middlewares/auth.py", line 43, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/utils/i18n/middleware.py", line 74, in __call__
2024-04-07 17:27:19 bot            |     return await handler(event, data)
2024-04-07 17:27:19 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
2024-04-07 17:27:19 bot            |     return await wrapped()
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/services/analytics.py", line 55, in wrapper
2024-04-07 17:27:19 bot            |     await self.logger.log_event(
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/analytics/amplitude/client.py", line 54, in log_event
2024-04-07 17:27:19 bot            |     await self._send_request(event)
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/analytics/amplitude/client.py", line 35, in _send_request
2024-04-07 17:27:19 bot            |     self._validate_response(json_response)
2024-04-07 17:27:19 bot            |   File "/usr/src/app/bot/analytics/amplitude/client.py", line 45, in _validate_response
2024-04-07 17:27:19 bot            |     raise ValueError(msg)
2024-04-07 17:27:19 bot            | ValueError: Error in amplitude api call | error: Invalid API key:  | code: 400

also, after starting the bot container, check whether the required package is installed using the command pip freeze:
pip freeze | grep Babel

Babel package is included in the dependencies (pyproject.toml). It's strange that in your case it is not visible

/usr/src/app $ pip freeze | grep Babel
Babel==2.14.0

if you have the Babel package installed but calling python -m pybabel doesn't work, then you should use the pybabel command. anyway this means that the package was installed

are you sure that you have set the api key in your environment variables?

are you sure that you have set amplitude api key in your .env file?

Of the .env data, I have specified only the API token of the bot. I just copied the rest from .env.example.
After all, the manual states that:

Environment variables
to launch the bot you only need a token bot, database and redis settings, everything else can be left out

are you sure that you have set amplitude api key in your .env file?

Of the .env data, I have specified only the API token of the bot. I just copied the rest from .env.example.
After all, the manual states that:

Environment variables

to launch the bot you only need a token bot, database and redis settings, everything else can be left out

it is implied that before launching only the bot, these settings are needed. if you need analytics, of course you need an amplitude api key, how else can you work with amplitude

just don’t use analytics if you don't need it, but if you need it, you need to set API Key

just don’t use analytics if you don't need it, but if you need it, you need to set API Key

Understood, thanks.
Now another mistake. This time, an error related to the aiogram keyboard:
INFO     | bot.middlewares.logging:__call__:113 - received message | chat_type: private | user_id: 192005446 | text: /supports
2024-04-07 19:28:10 bot            | Cause exception while process update id=368612033 by bot id=6945255203
2024-04-07 19:28:10 bot            | TelegramBadRequest: Telegram server says - Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard
2024-04-07 19:28:10 bot            | Traceback (most recent call last):
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 309, in _process_update
2024-04-07 19:28:10 bot            |     response = await self.feed_update(bot, update, **kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 158, in feed_update
2024-04-07 19:28:10 bot            |     response = await self.update.wrap_outer_middleware(
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/error.py", line 25, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/user_context.py", line 27, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/fsm/middleware.py", line 41, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/src/app/bot/middlewares/logging.py", line 165, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/src/app/bot/middlewares/database.py", line 23, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 19:28:10 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
2024-04-07 19:28:10 bot            |     return await wrapped()
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 276, in _listen_update
2024-04-07 19:28:10 bot            |     return await self.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 19:28:10 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/src/app/bot/middlewares/throttling.py", line 27, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 19:28:10 bot            |     return await self._propagate_event(
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 19:28:10 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 19:28:10 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 19:28:10 bot            |     return await self._propagate_event(
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 19:28:10 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 19:28:10 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 19:28:10 bot            |     return await self._propagate_event(
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 148, in _propagate_event
2024-04-07 19:28:10 bot            |     response = await observer.trigger(event, **kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 19:28:10 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 19:28:10 bot            |   File "/usr/src/app/bot/middlewares/auth.py", line 35, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/utils/i18n/middleware.py", line 74, in __call__
2024-04-07 19:28:10 bot            |     return await handler(event, data)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
2024-04-07 19:28:10 bot            |     return await wrapped()
2024-04-07 19:28:10 bot            |   File "/usr/src/app/bot/handlers/support.py", line 13, in support_handler
2024-04-07 19:28:10 bot            |     await message.answer(_("support text"), reply_markup=contacts_keyboard())
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/methods/base.py", line 84, in emit
2024-04-07 19:28:10 bot            |     return await bot(self)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/bot.py", line 492, in __call__
2024-04-07 19:28:10 bot            |     return await self.session(self, method, timeout=request_timeout)
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/session/base.py", line 254, in __call__
2024-04-07 19:28:10 bot            |     return cast(TelegramType, await middleware(bot, method))
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/session/aiohttp.py", line 178, in make_request
2024-04-07 19:28:10 bot            |     response = self.check_response(
2024-04-07 19:28:10 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/session/base.py", line 120, in check_response
2024-04-07 19:28:10 bot            |     raise TelegramBadRequest(method=method, message=description)
2024-04-07 19:28:10 bot            | aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard
2024-04-07 19:28:11 bot            | 2024-04-07 16:28:11.479 | INFO     | bot.middlewares.logging:__call__:113 - received message | chat_type: private | user_id: 192005446 | text: /contacts
2024-04-07 19:28:11 bot            | Cause exception while process update id=368612034 by bot id=6945255203
2024-04-07 19:28:11 bot            | TelegramBadRequest: Telegram server says - Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard
2024-04-07 19:28:11 bot            | Traceback (most recent call last):
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 309, in _process_update
2024-04-07 19:28:11 bot            |     response = await self.feed_update(bot, update, **kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 158, in feed_update
2024-04-07 19:28:11 bot            |     response = await self.update.wrap_outer_middleware(
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/error.py", line 25, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/user_context.py", line 27, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/fsm/middleware.py", line 41, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/src/app/bot/middlewares/logging.py", line 165, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/src/app/bot/middlewares/database.py", line 23, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 19:28:11 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
2024-04-07 19:28:11 bot            |     return await wrapped()
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 276, in _listen_update
2024-04-07 19:28:11 bot            |     return await self.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 19:28:11 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/src/app/bot/middlewares/throttling.py", line 27, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 19:28:11 bot            |     return await self._propagate_event(
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 19:28:11 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 19:28:11 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 19:28:11 bot            |     return await self._propagate_event(
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
2024-04-07 19:28:11 bot            |     response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
2024-04-07 19:28:11 bot            |     return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
2024-04-07 19:28:11 bot            |     return await self._propagate_event(
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 148, in _propagate_event
2024-04-07 19:28:11 bot            |     response = await observer.trigger(event, **kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
2024-04-07 19:28:11 bot            |     return await wrapped_inner(event, kwargs)
2024-04-07 19:28:11 bot            |   File "/usr/src/app/bot/middlewares/auth.py", line 35, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/utils/i18n/middleware.py", line 74, in __call__
2024-04-07 19:28:11 bot            |     return await handler(event, data)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
2024-04-07 19:28:11 bot            |     return await wrapped()
2024-04-07 19:28:11 bot            |   File "/usr/src/app/bot/handlers/support.py", line 13, in support_handler
2024-04-07 19:28:11 bot            |     await message.answer(_("support text"), reply_markup=contacts_keyboard())
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/methods/base.py", line 84, in emit
2024-04-07 19:28:11 bot            |     return await bot(self)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/bot.py", line 492, in __call__
2024-04-07 19:28:11 bot            |     return await self.session(self, method, timeout=request_timeout)
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/session/base.py", line 254, in __call__
2024-04-07 19:28:11 bot            |     return cast(TelegramType, await middleware(bot, method))
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/session/aiohttp.py", line 178, in make_request
2024-04-07 19:28:11 bot            |     response = self.check_response(
2024-04-07 19:28:11 bot            |   File "/usr/local/lib/python3.10/site-packages/aiogram/client/session/base.py", line 120, in check_response
2024-04-07 19:28:11 bot            |     raise TelegramBadRequest(method=method, message=description)
2024-04-07 19:28:11 bot            | aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard

I haven't changed anything, so the error is clearly on your side.

thanks, but so far I have not been able to reproduce this error

reproduced on Mac. after manual compiling bot starts correctly

this problem could occur due to the bot container from the docker-compose.yml used volume with the bot source code including dir bot/locales in which there were no compiled files (the compilation process was in Dockerfile)
I removed the extra volumes and now compiled *.mo files remain in the container


Breadth-first search: problem with storing nodes to the graph.

https://stackoverflow.com/questions/56614597/cant-store-data-properly-to-implement-the-breadth-first-search-in-application-l

your hasNode method shouldnt abort if the first element wasnt found instead only return false if all of the elements are checked and there is no match

Hey everyone!
This repository manages the Coding Train website, it isn't the right place for asking questions.
The best things you can do is join our discord.
P.S. Sorry for the late reply, we didn't use the issue section of this repository for a long while.
Hope to see you there!


ABI Serialization: shortcut for extended_asset

Support "1.2345 FOO@contract"

@wanderingbort Do you have a plan to merge #6001 again? If there is a point to be modified, please let me know. If not suitable, keep it reverted. :)

In order to focus our efforts on issues that are currently creating difficulty for the community we are closing tickets that were created prior to the EOSIO 2.0 release.  If you believe this issue is still relevant please feel free to reopen it or create a new one.  Thank you for your continued support of EOSIO!


Component tests within a test suite are not isolated from each other

Cause
By default jest-puppeteer creates a new browser context and page for each test suite (collection of tests in a file), but not for each test (this is not documented, but evident from reading the jest-puppeteer source code). This means that for each test the same Chrome tab is used, including any shared state (for example, if a test visits a page with page.goto, in the next test the tab will still have that same page open).
Consequences
This means that tests can affect each other, which is bad practice, as it can cause difficult to debug problems.
Because this lack of isolation it is also goes against most developer's expectations, so contributors who are not aware of the lack of isolation may not add test teardown functions where they are needed.
This problem recently manifested with the accordion component, where it was found that the session storage would cause tests to fail where they should pass (see #2301 for more details).
Impact of debt
Medium.
Most of our components do not have shared state so the chances of hitting this issue are low, however it does reduce confidence in our tests and make it harder for contributors to write valid tests. There is also a small risk that there are current bugs in our code that are being hidden by this issue.
Effort to pay down
Medium.
It is trivial to reset the browser state after each test; we can add a global afterEach function to call resetPage() or resetBrowser. However, currently this would break a large number of our tests, which (inadvertently or otherwise) assume that the browser state is not cleared between tests and use beforeAll instead of beforeAll.
Fixing this issue would also most likely cause our tests to be slower, due to the overhead of resetting the browser; it is not clear what the scale of the slowdown would be however, as currently adding the teardown function breaks most tests, but it could be as large as 2x.
Overall rating
Medium.

Related to

https://github.com/alphagov/govuk-frontend/issues/3049

Where we can look at browser/session isolation using a framework


docs: add headers

Why:
Closes https://github.com/github/docs/issues/5848

What's being changed:

Check off the following:

[x] I have reviewed my changes in staging (look for the latest deployment event in your pull request's timeline, then click View deployment).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

the headers would be super useful

@khattakdev Thanks so much for opening a PR! I'll get this triaged for review :zap:


pegasus demuxEM

Hi,
thanks for putting together all these functionalities in one tool!
i'm trying to demultiplex my nuclei-hashed data with demuxEM, and I get A LOT of unknown (50% of data). I was hoping you could clarify on what exactly determines that a cell is unknown, the only mention i found is this:
--min-signal-hashtag
Any cell/nucleus with less than  hashtags from the signal will be marked as unknown. [default: 10.0]
The cells deemed unknown have way above 10 UMI for the hashtag library when I check the raw data. The distribution of hashtags UMI is clearly bimodal for background and signal, but the one deemed background is practically overlapping the signal one and the difference between their mean is less than one order of magnitude(signal is higher than 10^3 and background is above 10^2), so I wonder if there's a better selection of params I'd better use, I was just testing default params.
also, if what comes out of the cellranger pipeline are CELLS (above n UMI threshold) and GEMS, the tool is demultiplexing a lot of GEMS, nothing wrong with that, but it makes a bit complicated to get out the right percentage of cells demultiplexed.
hope you can clarify how to better run the demultiplexing and interpret the results!
thanks for your help!

Hi @bio-la ,
Thanks a lot for interest in using Pegasus.
Sure. DemuxEM first try to remove ambient HTOs by matching the distribution learned in the empty droplets. After removing the ambients, if the total number of hashtags (signal) are < 10.0, DemuxEM will assign 'unknown' to this GEM. Please refer to our paper, https://www.nature.com/articles/s41467-019-10756-2, for more details.
For your second question, you can adjust the --min-num-genes  and --min-num-umis   options to be more stringent. Since in the cluster subcommand we have another round of QC control, for DemuxEM we set the thresholds loose.
Hope it helps,
Bo


Update strings in zh locale

Regarding https://github.com/saltcorn/saltcorn/issues/1145, I have noticed there are some wordings that can be improved for zh-CN locale, although some of them are no longer in use.
@kevin8181 Would you please help have a look when the time suits you? Thank you in advance!

Thank you for you contribution @Atozzio! I hope you are doing well! If no one has any comments I think we can merge this.


Using alphabet in the main menu

What is your question?
how do make the main menu use the alphabet letters like in hypnos lullaby

why even ask this, options menu uses alphabet. Just use that


Fix JSON Extract on structs.

It was broken because the jsonpath library fails whenever the given object is not a slice or a map. Structs must thus be converted to map[string]interface{} JSON representation prior to jsonpath.Lookup being called.

Looks like this breaks a bunch of tests, although the change looks fine. Let us know if you need help debugging.

Looks like this breaks a bunch of tests, although the change looks fine. Let us know if you need help debugging.

@jennifersp can you evaluate this to see if the change is good, and then fix the tests if so? (and close this out if not)

Was not able to push commit to this PR, so created PR fixes failing tests for this PR


All pages on a domain are loaded through UpUp after upup usage

Hi,
I used a simple test page to test how UpUp is working. I would like to adopt it into a new project.
After I used it, all the requests to my domain are strongly cached and sometimes I can see that offline content on the test page even if the URL in the browser has nothing to do with the UpUp test page.

How do I unregister/stop the service worker?

I assume that I have to call ServiceWorkerRegistration.unregister()
I tried the following code:
pro = navigator.serviceWorker.getRegistrations()
pro.then(function(registrations) {
    for(registration of registrations) {
        registration.unregister()
    }
})

but I received Uncaught (in promise) TypeError: registration.unregister is not a function(…)
I can see that unregister is not a method on the registration object, so the registration object is not a ServiceWorkerRegistration

However, good tip to manually unregister it from chrome://serviceworker-internals/

Any method in the UpUp API to unregister a service worker? I can find only start(), addSettings() and debug().

The correct way of doing it is calling registration.unregister():
https://github.com/TalAter/UpUp/blob/master/src/upup.js#L126
The bad news is that UpUp doesn't expose registration.

Duplicate


Release fails after update to release.yml

See e.g. https://github.com/nearform/github-action-check-linked-issues/actions/runs/2370769249
"The specified node version file at: /home/runner/work/github-action-check-linked-issues/github-action-check-linked-issues/.nvmrc does not exist"

ahh that's probably because we're not checking out the source code when releasing

ahh that's probably because we're not checking out the source code when releasing

ha, just came to the same conclusion 🙃
should we revert here to just passing the version number? Or add the checkout step to the release workflow?

Let's revert, otherwise we'd have to do this change everywhere. Also let's use just v3 instead of a specific version.


[BUG] Change of behavior between KoP 0.3.0 (2.6.2) and 2.7+ using SASL

Describe the bug
We noticed a change in behavior between KoP 0.3.0 (2.6.2) and 2.7+ using SASL with token authentication (#206?)

In 0.3.0, when multiple clients connected using different SASL credentials (username=tenant/namespace) there was no cross-talk between them: Client1 with SASL1 on TopicA did not see data from Client2 with SASL2 on TopicA.
With 2.7.x this has changed, and Client1 and Client2 can freely exchange data.

To Reproduce
Steps to reproduce the behavior:

Configure Pulsar and KoP to use SASL w/ token authentication.
Run Kafka producers/consumers using different SASL credentials. The Kafka clients will cross-talk (Pulsar clients are not affected by this).

Expected behavior
The desired behavior is to have SASL credentials prevent cross-talk between Kafka clients.
Additional context
We understand that Kafka is not normally multi-tenant, but we think the behavior seen in 0.3.0 is very useful. We are interested to know what the intentions/goals are here. Is the behavior we rely on with 0.3.0 the intended behavior, a side-effect of the original implementation, etc?

I don't understand well. Could you give a more detail explanation on how two clients exchange data?

I don't understand well. Could you give a more detail explanation on how two clients exchange data?

By "two clients exchange data", I just mean messages sent by a producer app are received by a consumer app.
The test apps I run are basic and very similar to your Sarama/Confluent integration tests. The big difference is that my test apps have SASL configured. I can share my test apps with you if it will help.
In my test case the producer has a different SASL username and password than the consumer. In 0.3.0 if the producer app and the consumer app have different SASL username, then the consumer will not receive messages from the producer.

If you need log files, config or any other data please let me know.

I get it. Currently the SASL/PLAIN mechanism for KoP only checks if the role has the permission for the specific namespace (username). However, the client could produce/consume to another namespace since there we have no checks for if the username that represents the namespace is what the topic belongs.
I'll take a look at how to fix it when I'm free.


Revised landing page and first options

Describe the task
As a Quackstack developer I want a mockup/wireframe of the landing page and first options So That I have a guide to make building these pages easier
Acceptance Criteria

e.g. Given (Context), When (Action carried out), Then, (expected outcomes)

[ ]  Refined mockup/wireframe improved from teammates critique of the first design
[ ] Notes/Comments detailing design choices and justifications to increase clarity

Additional context
These exist as a guideline to help build the respective pages. They can be changed and iterated upon as needed

I'm having some issues getting the B.C. Government Figma library imported into the project. Errors appear without any message, so I'm looking into if the BC Sans font needs to be added first, among other things.

Let me know if I can help in any way 😄


Added Minimum Beat

Considering most apps are very fast in network requests, this will give the option of intentionally forcing a few beats (1 or more) before loading the main screen

Current coverage is 90.33% (diff: 0.00%)

Merging #14 into master will not change coverage

@@             master        #14   diff @@
==========================================
  Files             4          4
  Lines           362        362
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            327        327
  Misses           35         35
  Partials          0          0

Powered by Codecov. Last update 57a4da6...1cccff8


Set Helm deployment to pull IfNotPresent

Helm uses fixed tags (e.g. v2.0.2) so there should be no need to pull a new image every time.
I came across this on my minkube setup. I routinely start/stop my VM. The helm deploy fails occasionally because it cannot pull a new image. This is because my network connection is flaky. I investigated the deployment template used to install tiller. This change should make the things more stable in some use cases.  Granted it assumes the image associated with a tag never changes. I'm not sure if tiller uses this strategy so I figured I would propose this change.

I signed it!
On Tue, Dec 13, 2016, at 02:00 PM, k8s-ci-robot wrote:

Thanks for your pull request. Before we can look at your pull request,
you'll need to sign a Contributor License Agreement (CLA).
📝 Please follow instructions at
https://github.com/kubernetes/kubernetes/wiki/CLA-FAQ to sign
the CLA.
Once you've signed, please reply here (e.g. "I signed it!") and we'll
verify.  Thanks.

If you've already signed a CLA, it's possible we don't have your
GitHub username or you're using a different email address.  Check
your existing CLA data and verify that your email is set on your
git commits[1].
If you signed the CLA as a corporation, please sign in with your
organization's credentials at
https://identity.linuxfoundation.org/projects/cncf to be
authorized.
If you have questions or suggestions related to this bot's behavior,
please file an issue against the kubernetes/test-infra[2] repository.
— You are receiving this because you authored the thread. Reply to
this email directly, view it on GitHub[3], or mute the thread[4].

Links:

https://help.github.com/articles/setting-your-email-in-git/
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
https://github.com/kubernetes/helm/pull/1673#issuecomment-266676848
https://github.com/notifications/unsubscribe-auth/AAC_IH8ZKuZZgCHR4IDQLSVQeV86CpqEks5rHleVgaJpZM4LLdba


[CELEBORN][FOLLOWUP] Unify the celeborn shuffle manager of velox and ch

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
(Fixes: #ISSUE-ID)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

Run Gluten Clickhouse CI

@liuneng1994 cc

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_3107_time.csv
log/native_master_09_12_2023_892535655_time.csv
difference
percentage

q1
43.70
44.37
0.677
101.55%

q2
24.80
23.17
-1.636
93.40%

q3
37.14
36.71
-0.428
98.85%

q4
41.53
41.27
-0.261
99.37%

q5
70.63
69.43
-1.203
98.30%

q6
6.59
5.00
-1.598
75.77%

q7
86.41
83.94
-2.468
97.14%

q8
79.22
82.77
3.558
104.49%

q9
114.39
115.52
1.132
100.99%

q10
50.53
46.05
-4.476
91.14%

q11
18.80
19.04
0.242
101.29%

q12
25.61
25.94
0.333
101.30%

q13
49.32
51.71
2.393
104.85%

q14
16.78
13.72
-3.062
81.76%

q15
27.67
27.98
0.319
101.15%

q16
15.97
15.60
-0.373
97.66%

q17
121.43
119.89
-1.539
98.73%

q18
161.45
163.11
1.657
101.03%

q19
12.46
12.03
-0.436
96.50%

q20
32.20
38.93
6.730
120.90%

q21
240.29
248.23
7.945
103.31%

q22
15.35
15.56
0.209
101.36%

total
1292.27
1299.99
7.715
100.60%


Changes to Hero and Navbar

Added the Animation in Hero section in Mobile Layout, so that the page looks more interactive and consistent.
Changed Navbar Links to uppercase so that it looks more readable in mobile layout

P.s. All the other changes, that was assigned to me, somebody else did it :)

.deploy

.deploy

.deploy

.deploy

.deploy

.deploy master

.deploy main

.deploy

.deploy

.deploy

.deploy main

.deploy master

.deploy

@SujalSamai There is some problem with the workflow. So, can you please deploy your changes in your repo? You can follow the steps provided in the last part of the discussion here: #74

@SujalSamai Please resolve the conflicts.

I have resolved the conflicts

I have resolved the conflicts

Please keep the light and dark mode button as before like this -

Or, fix this button in place of the checkbox

Please merge this one first, I'll raise another PR after making changes. Otherwise it's getting really messy, in my local repository.

Please merge this one first, I'll raise another PR after making changes. Otherwise it's getting really messy, in my local repository.

@SujalSamai I have fixed that problem by replacing the checkbox with sun/moon image during dark/light mode enabled. So, you may not need to change that unless you want to modify it.


Update package for tracing package 1.0-beta1

The README mentions this project supports Swift 5.4+. This will not be the case anymore.


Provide technical documentation for base template-lidar-plot

Task to do
Create technical documentation for template-lidar-plot and add it to the Organization web site
Reason
Documenting technical approach to repo, and what's provided by code is helpful for developers
Result
Technical documentation on the Lidar plot-level template is available
Note:

starting with the existing template-rgb-plot technical documentation would most likely shorten the timneframe needed to produce the documentation

PR for this is located here
https://github.com/AgPipeline/AgPipeline.github.io/pull/3


Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner

I think this PR #358 made the Android cannot trigger registerNotificationOpened when user press on banner. For more details, you can read the issue here #498
The reason is If users press on banner when app is in background. The notification doesn't have extra bundle pushNotification

This fixed background notifications on android for me. Can this be merged?

The same issue for lasted version, Please merge it ASAP

This fixes it for me as well!

This fixed in background for  me. tks

@yogevbd
is this PR included in a new publish? or it's not published on npm yet?

@yogevbd Are there any plans to release a new version with this fix please? Thanks.

@ciprian-iacob 3.3.0 is now released 🎉

@yogevbd Thank you! Great effort we all appreciate it.


Small fix to allow delay to be 0ms to in case a job should be execute…

…d immediately.

@mikob I wonder if we use this, how is exponential back-off going to work?

you should be able to simply call job.inactive() to queue it.


How to use real Velodyne data?

I want project Velodyne data to spherical with utils/preprocess.py, when I run it, occurred this problem:
OSError: [Errno 2] No such file or directory: 'velodyne'
Where is Velodyne directory?
And how can I use a Velodyne data and convert its point to the spherical?

You need to download the data from the Kitti website and make your own data directory.
Since the original paper and this repo create rectangular voxels, it would be up to you to define the spherical system and voxelization.


MINOR: Provide valid examples in README page.

testMetadataUpdateWaitTime method is removed from MetadataTest class.
travis-ci.org will be shut down in some time. All the interactions are now via travis-ci.com.

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@chia7712 @omkreddy
ping for review

@chia7712
Can you please review this patch?

@ijuma Can you please review and merge this patch? Thanks!

@ijuma @showuon
Please take a look

@kamalcph , thanks for the patch!


[Enhancement] New mappack settings

A new set of mappack settings, stored in a separate mapsettings.txt (maybe JSON?) file so it doesn't break compatibility with vanilla SE Beta 9. It should be mostly quality-of-life settings that don't make or break a mappack, things such as:

[ ] Fast portals (#76)
[ ] Fast deaths
[ ] Disable portal reload (#49)
[ ] Disable UI (score/coins/level/time)
[ ] Limit/disable multiplayer

Feel free to suggest more.

Been thinking of adding these to the animations system instead (#59). Unless you think it'd be better as a global configuration, in which case we could try something similar to Customizable Variables from HEC (#12)

I think using animations for what seem like global settings is overcomplicating it. I never used HEC's customizable variables, but what I'm thinking is just a separate screen with the title/author/description/etc. and a few more global settings.
Being able to change these global settings via animations would be cool (especially disabling the UI for cutscenes), but it shouldn't be that exclusively. Having a menu for it is far more intuitive.

In HEC, it's just a text file, it had no UI, but having a UI should be more intuitive.


feat: add some improvements for error

I've changed a bit the pattern to handle error.
Please let me know if you like this approach, I just changed the credentials.store as an example.
The files .store is better to not have toast.
It's better to split the view to handle the interaction with the user (dialogs, toast, etc..) and the stores only to handle the communication with the backend and save data that must to be global (like the user when logged in).
So this PR I removed some console.errors and console.log, I removed the duplication of toasts, and I moved the toast logic to the view part.
This way it will be easier as well to make automated tests.

I think it's awesome, I'm glad you had this idea, the implementation looks pretty and solid, thank you!


Update CMakeLists.txt

Add ${TOKENIZERS_C_LINK_LIBS} and append ${CMAKE_DL_LIBS} for Linux  platform (https://github.com/mlc-ai/tokenizers-cpp/issues/1#issuecomment-1556206254)

Thanks @songkq , made some followup comments on moving some of the deps to TOKENIZERS_C_LINK_LIBS  then we are good to go


Enable/Disable enhancement

Hi,
First of all, nice module!
Now to the feature request. It would be nice if you could enable/disable the module on different store views. Let's say one view uses the Klarna Checkout module, then CleanCheckout will be added to the Klarna Checkout as well, so it would be nice if it was possible to enable/disable CleanCheckout.
Cheers!

I would totally agree to this enhancement :) 👍


Worng query when aggregating with filter

Thanks for reporting an issue in NRedisStack! Please update the appropriate text below, as much data as possible really helps!
NRedisStack Version: 0.11.0
Redis Stack Version:  redis_version:7.2.3 from official docker image
MODULE LIST
name timeseries   ver 11009 path /opt/redis-stack/lib/redistimeseries.so args
name redisgears_2 ver 20014 path /opt/redis-stack/lib/redisgears.so      args v8-plugin-path /opt/redis-stack/lib/libredisgears_v8_plugin.so
name search       ver 20809 path /opt/redis-stack/lib/redisearch.so      args MAXSEARCHRESULTS 10000 MAXAGGREGATERESULTS 10000
name bf           ver 20608 path /opt/redis-stack/lib/redisbloom.so      args
name RedisCompat  ver 1     path /opt/redis-stack/lib/rediscompat.so     args
name ReJSON       ver 20607 path /opt/redis-stack/lib/rejson.so          args
Description:  I am trying to evaluate Redis for aggregations. I saved a few JSON records and tried to aggregate using filter on one of the properties. The generated query throws an exception that a property is not loaded or in the pipeline.
example code
using NRedisStack.Search;
using NRedisStack;
using StackExchange.Redis;
using NRedisStack.RedisStackCommands;
using NRedisStack.Search.Literals.Enums;
using RedisTest3;
using NRedisStack.Search.Aggregation;
using NRedisStack.Literals.Enums;
using static NRedisStack.Search.Query;
using System.Text.RegularExpressions;

string session = "user";

ConfigurationOptions options = new ConfigurationOptions
{
    EndPoints = {
            { "localhost", 6379 },
        },
};

ConnectionMultiplexer cluster = ConnectionMultiplexer.Connect(options);
IDatabase db = cluster.GetDatabase();
SearchCommandBuilder.DropIndex("idx:users", dd: true);
db.Execute("FLUSHALL");

ISearchCommands ft = db.FT();
IJsonCommands json = db.JSON();

var schema = new Schema()
    .AddNumericField(new FieldName("$.UserId", "UserId"), sortable: true)
    .AddTagField(new FieldName("$.CreatedDay", "CreatedDay"))
    .AddNumericField(new FieldName("$.StatusId", "StatusId"), sortable: true);

ft.Create(
    "idx:users",
    new FTCreateParams().On(IndexDataType.JSON).Prefix($"{session}:"),
    schema);

var parameters = FTCreateParams.CreateParams().Filter("@StatusId>1").Prefix($"{session}:");
ft.Create("idx:users2", parameters, schema);

BacktestResultRedis res1 = new BacktestResultRedis
{
    CreatedDay = "2023-10-01",
    StatusId = 1,
    UserId = 1000
};

BacktestResultRedis res2 = new BacktestResultRedis
{
    CreatedDay = "2023-11-01",
    StatusId = 2,
    UserId = 1001
};

BacktestResultRedis res3 = new BacktestResultRedis
{
    CreatedDay = "2023-10-01",
    StatusId = 3,
    UserId = 1002
};

BacktestResultRedis res4 = new BacktestResultRedis
{
    CreatedDay = "2023-12-01",
    StatusId = 2,
    UserId = 1003
};

BacktestResultRedis res5 = new BacktestResultRedis
{
    CreatedDay = "2023-12-11",
    StatusId = 1,
    UserId = 1003
};

json.Set($"{session}:1", "$", res1);
json.Set($"{session}:2", "$", res2);
json.Set($"{session}:3", "$", res3);
json.Set($"{session}:4", "$", res4);
json.Set($"{session}:5", "$", res5);

var request = new AggregationRequest("*", 3).Filter("@StatusId==1")
                .GroupBy("@CreatedDay", Reducers.CountDistinct("@UserId"), Reducers.Count().As("count")) ;
var result = ft.Aggregate("idx:users", request);

    public class BacktestResultRedis
    {
        public string CreatedDay { get; set; }
        public byte StatusId { get; set; }
        public long UserId { get; set; }
    }

I expect the generated query to be
FT.AGGREGATE idx:users * FILTER @StatusId==1 GROUPBY 1 @CreatedDay REDUCE COUNT_DISTINCT 1 @UserId REDUCE COUNT 0 AS count DIALECT 3

which executed in the CLI returns expected results.
But the actual query is
FT.AGGREGATE idx:users * GROUPBY 1 @CreatedDay REDUCE COUNT_DISTINCT 1 @UserId REDUCE COUNT 0 AS count FILTER @StatusId==1 DIALECT 3

which executed in the CLI throws an error "Property StatusId not loaded nor in pipeline".
In AggregationRequest class I see that there is a function SerializeRedisArgs which looks like generates the query with a specific order of commands which probably is the issue.
I am doing something wrong or this is a bug?

Hey @lem0na, thank for the detailed issue :)
After checking with RediSearch team,
FILTER or any operation in the pipeline after a GROUPBY can only relate to fields which the GROUPBY will define AS
If you relate to other fields you will get an error that the Property is not loaded or not in the pipeline.
FILTER before the GROUPBY can relate to any available Property
As you said, I arranged the query so that it is in the order that appears in documentation of  FT.AGGREGATE, there the FILTER comes after GROUPBY.
Try to add the @StatusId to the GROUPBY and tell me if you got the result you expected to get. you can do it like this:
var request = new AggregationRequest("*", 3)
    .Filter("@StatusId==1")
    .GroupBy(
        new List<string> { "@CreatedDay", "@StatusId" },
        new List<Reducer>
        {
            Reducers.CountDistinct("@UserId"),
            Reducers.Count().As("count")
        }
    );

Beyond that, A little thing I noticed is this line:
SearchCommandBuilder.DropIndex("idx:users", dd: true);

Builds the command and returns it to you, but not sending the command to Redis, if you want to sent it to redis you need to do like this:
ISearchCommands ft = db.FT();
ft.DropIndex("idx:users", dd: true);

In any case, don'd do it at the start, because if you send the command when Redis does not know the index yet, you will get an error.

Hi @shacharPash
Thanks for the quick response. I am a newbie using Redis outside the KV store - a few days ago, I discovered that Redis now supports a lot of features that I had thought of.
The code that you provided returns the expected results. But I am wondering why TotalResults is 5, not 2 as this is the real number of results. When I execute it in CLI it also returns 5 which is probably related to Redis and not to the library.
About
SearchCommandBuilder.DropIndex("idx:users", dd: true);

it is leftover from some previous tests. Thanks for mentioning it.

Hi @lem0na, after researching the topic and reading the documentation, it turns out that the order of the arguments within the FT.AGGREGATE command has meaning, and also that you can send more than one argument.
Currently NRedisStack does not allow these two things and I will fix it.
Thanks for bringing it to my attention.


Deploy mdbook only if owner is comtrya.

I'm submitting a

[x] bug fix
[] feature
[ ] documentation addition

What is the current behaviour?
The deploy mdbook workflow fails in my fork because I don't have permission to publish.
It would be great to see that all tests pass / fail when looking at my fork commit history without having to account for the deploy workflow always failing.

The Setup Pages step is still failing, I'll fix this in a few minutes.

I definitely overlooked the pipeline running in forks causing an annoying failure. Thanks for the PR to fix that!

Looks like there is an issue with it. I tried messing with the dependencies to see if maybe the upload step needed to depend on the build step and deploy step depend on the upload, but that wasn't quiet it either.


LaunchTemplate creation can fail when metadata_options supplied

Description
LT creation fails in combination with metadata_options config
Versions

Terraform: 1.1.x

Provider(s): hashicorp/aws v3.73.0

Module: 18.2.1

Reproduction
I had a MNG with LT that had in eks_managed_node_group_defaults metadata_options set up and running just fine
eks_managed_node_group_defaults {
    metadata_options = {
      http_tokens = "optional" // keep support for IMDSv1
    }
}

I then removed the MNG and wanted to add a new MNG, however to my surprise I then got reproducible error
╷
│ Error: InvalidParameterValue: A value of ‘’ is not valid for http-endpoint. Valid values are ‘enabled’ or ‘disabled’.
│ 	status code: 400, request id: e126b5f6-a1f9-4666-9e4f-c84981b8e5cf
│
│   with module.eks.module.eks.module.eks_managed_node_group["new_group"].aws_launch_template.this[0],
│   on .terraform/modules/eks.eks/modules/eks-managed-node-group/main.tf line 37, in resource "aws_launch_template" "this":
│   37: resource "aws_launch_template" "this" {
│

I could easily fix it by adding to the metadata_options http_endpoint = "enabled" . However this shouldnt be necessary regularly.
eks_managed_node_group_defaults {
    metadata_options = {
      http_tokens = "optional" // keep support for IMDSv1
      http_endpoint = "enabled"
    }
}

Somehow an edge-case, still tracking it here for what its worth

needs reproduction config

@bryantbiggs should I provide a full-working gist ?  as for reproduction my supplied code would suffice as its the relevant part of config

related upstream issue https://github.com/hashicorp/terraform-provider-aws/issues/23174

@bryantbiggs reading the upstream issue, I can confirm it's actually that.
I encountered it a second time in a bit different scenario that matches upstream issue more closely than this here.
Feel free to close here then. Thanks for keeping overview :)

it looks like they have a fix and there won't be any required change here so closing for now https://github.com/hashicorp/terraform-provider-aws/pull/23213


[User-Story] - Change Generation

Story
As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.
As a USER which dqualizer knowledge, I want to get generated scenarios which measures metrics based on the load/resilience designs to be able to pick useful scenarios for my scenario test.
Acceptance Criteria

[ ] Sentences should not contain detailed information about the rqa(load, resilience) design
[ ] Each kind of load specification should different metrics

Dependencies

[ ] Blocked by issue one
[ ] Blocked by issue two
[ ] Blocked by issue three

Additional context
Add any other context or screenshots about the research request here.

Is already possible


python311Packages.smbprotocol: 1.10.1 -> 1.11.0

Diff: https://github.com/jborean93/smbprotocol/compare/refs/tags/v1.10.1...v1.11.0
Changelog: https://github.com/jborean93/smbprotocol/releases/tag/v1.11.0
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.


bump libcrypto to 3.1.6-r2

The current version breaks the build: https://github.com/flux-iac/tofu-controller/actions/runs/9858437305/job/27219804027

Looks goood to me :) and checks are parsing.


feat: add gcfg.Adapter implements using nacos service

Codecov Report
Base: 76.54% // Head: 76.52% // Decreases project coverage by -0.02% :warning:

Coverage data is based on head (7902bbd) compared to base (33fdde6).
Patch coverage: 50.76% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2232      +/-   ##
==========================================
- Coverage   76.54%   76.52%   -0.03%
==========================================
  Files         581      582       +1
  Lines       48318    48383      +65
==========================================
+ Hits        36983    37023      +40
- Misses       9312     9331      +19
- Partials     2023     2029       +6

Flag
Coverage Δ

go-1.16-386
76.51% <50.76%> (?)

go-1.16-amd64
76.52% <50.76%> (?)

go-1.17-386
76.55% <50.76%> (?)

go-1.17-amd64
76.54% <50.76%> (-0.04%)
:arrow_down:

go-1.18-386
76.43% <50.76%> (-0.08%)
:arrow_down:

go-1.18-amd64
76.48% <50.76%> (-0.03%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

contrib/config/nacos/nacos.go
50.76% <50.76%> (ø)

os/gfsnotify/gfsnotify_watcher_loop.go
83.19% <0.00%> (ø)

container/gtree/gtree_avltree.go
95.97% <0.00%> (+0.57%)
:arrow_up:

os/gspath/gspath_cache.go
94.73% <0.00%> (+7.01%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add some content to faq.md

Hope I have clicked the correct buttons - first I clicked the "Resolve conversation" button, but that did not automatically commit the suggestions you made :)

And now it shows "Read the Docs build failed!" :(

I now went back and "unresolved" each of the suggested edits, and committed them one by one. Hope that fixes things.

eb919 seems to be the commit which breaks the build - the warning seems to be, " WARNING: 'myst' cross-reference target not found: 'dev/compiling/index' [myst.xref_missing]" https://readthedocs.org/api/v2/build/23548306.txt

Now it worked :)


Story "Bundle SGE application"

          # Story "Bundle SGE application"

Repository https://github.com/eclipse-tractusx/knowledge-agents
Statement
As KA deployer, I want to have a ready-made chart of the SGE in order to deploy it.
Acceptance Criteria

Bundle deployment of frontend and backend

Estimation
4 SP
Originally posted by @drcgjung in https://github.com/eclipse-tractusx/sig-release/issues/278#issuecomment-1770885682

won't do


[ENG-2636] Get all registration schemas on discover page

Ticket: ENG-2636
Feature flag: n/a

Purpose
Use the page[size] query parameter to get all of the registration schemas for faceting on the registries discover page.
Summary of Changes

Change instances of findAll where we want to use page[size] to query
Add page[size] query parameter to the registration-type-facet for the registries discover page.

Side Effects
None anticipated
QA Notes

There should be more than 10 registration types on the registration discovery page 'registration types' facet when limiting the provider to OSF Registries (if there are more than 10 registration types in that environment)
There should be more than 10 registration providers in the 'provider' facet on the registries discover page (if there are more than 10 providers in that environment)

it might be worthwhile to add the page[size] option to the call here too: https://github.com/CenterForOpenScience/ember-osf-web/blob/develop/app/guid-node/registrations/controller.ts#L40


Use svelte #await block in data fetching example

Just as solid-js is using its createResource api in the data fetching example, svelte also has its own api to deal with promises, the await block

Duplicate https://github.com/matschik/component-party.dev/pull/246#issuecomment-2254569562


JAMES-3720  Email reprocessing: temporary file leak (for 3.7.x)

Cherry-Picked the commits for JAMES-3720 to the 3.7.x branch, since this is an important bug fix which should be a included in an eventual 3.7.1 release.
This is virtually the same as https://github.com/apache/james-project/pull/904 for 3.7.x

Thanks for merging!


Set impliedNodeFormat based on redirectedReference options

Fixes #57553

@typescript-bot test it

I have a strong suspicion that redirected references and impliedNodeFormat are behind crashes like this one. In the cal.com's case, we can bisect the crash to https://github.com/microsoft/TypeScript/pull/59479 but those kind of crashes were present way before that PR.
I'm still trying to reduce that repro case but I figured out it might be an interesting info to you. I have confirmed that this PR doesn't fix that issue right now.

I think our architecture here is going to have to change significantly. The fix in this PR as it stands breaks the scenario tested in https://github.com/microsoft/TypeScript/pull/60039/commits/100f939c532a397c41293462cdf7613cec11dcb3. We can’t actually skip setting impliedNodeFormat on source files in any case; we can only choose how to interpret the value there.

I feel like this value should be in program instead of on sourceFile because sourceFiles are shared across programs. Eg thats what we did for module resolution as it causes issues otherwise. Otherwise sourceFile with given options "OptionsAffectingSourceFile" need to handle these cases and then it starts depending on ModuleResolution options again? (we removed that dependency)

That’s one option I thought about. moduleResolution is already correctly marked as affecting source files. Unfortunately, impliedNodeFormat is public on SourceFile. But internally, most if not all accesses happen through Program now, so I think we could just always set impliedNodeFormat on source files and let the Program-based accesses decide whether to return anything.

I can confirm that this now fixes https://github.com/microsoft/TypeScript/issues/60029#issuecomment-2367003008 . I'm still working on creating a test based on that crash though.

@typescript-bot test it

Pretty sure what I have works, though moving the storage to Program would be more efficient, though also a public API break... I don’t think I’ll have time to get this into 5.7 as I’ll be out on vacation starting tomorrow and returning past the beta deadline.

It took me a while to reduce this 🥵 but here's a test case for the crash I mentioned in my previous comments here: https://github.com/andrewbranch/TypeScript/pull/3

@jakebailey could you build this one? :) a user would like to test effect of this PR on the VS Code crashes they experience: https://github.com/microsoft/TypeScript/issues/60243#issuecomment-2513273068

Unfortunately not, as the build has merge conflicts.

@typescript-bot pack this


txt2al: illegal character in Path

After creating DELTA files with Compare-NAVApplicationObject, I got several error messages while using txt2al.exe:
----ERROR---- Error converting file: c:\run\my\delta\PAG1.DELTA Illegal characters in path.
Version: 15.0.36560.0-w1 from bcsandbox-master
There is an closed issue about this, but it wasn't solved: #5192

It seems to be related to the (default) {name} and {targetName} plugins.
It seems to be impossible to turn off the --rename flag so the best I can do to workaround is to use {type}-{id} as the filename patterns.
As far as I can tell there is no match with the actual name of the file, it just breaks with some files.

@alapenas, as version 15.0 does not contain C/SIDE anymore and thus txt files cannot be exported with this version, we are now advising to use the txt2al from the 14.x previews. This is also where we will focus in future for txt2al bug fixes. We will add this to our online documentation.

Right, that means I have to ignore your name creation by trying to turn off --rename and fix the problem in a script after or roll back to a working version. As this bugfix is no longer available in a prompt manner.
Or do you have a hidden -master variant of a V14 docker available?
As for "previews" there are no V14 previews in "collaborate/packages" and the "Wave 2" previews (more sensibly known as V15 onprem AIUI) give "This service is unavailable" on download. Not good.

v15 is available publicly since yesterday - mcr.microsoft.com/businesscentral/onprem - and also as DVD's on partnersource.
for txt2al, there is a parameter called runtxt2alincontainer, which can use txt2al in another container for handling 14.x stuff - described here: https://freddysblog.com/2019/08/02/organizing-your-al-files/
Until yesterday, we created daily builds from the 14.x branch (bcinsider.azurecr.io/bcsandbox:ltsc2019 = next minor). latest build there was 14.6.36666.0-w1-ltsc2019
Found by Get-NavContainerImageTags -imageName "bcinsider.azurecr.io/bcsandbox" -registryCredential (New-Object pscredential "username", (ConvertTo-SecureString -string "password" -AsPlainText -force))).Tags

Thanks for that Freddy, I hadn't noticed Get-NavContainerImageTags and was stuck with your previous documentation.
As for spinning up a container just for txt2al it's actually a far better idea just to copy the Nav-client directory out of the image IMO (a 50th of the size too).

Hi @rdebath, after Freddy's help, are you now able to run the txt2al from 14.x with the fix for the issue reported on illegal characters in the path of the generated files?

Okay, I hadn't checked because I've given up on it and just script some nicer names.
It is no longer complaining about "illegal characters", but I suspect it's not doing what you want for the {targetName} attribute in that it's keeping spaces and fillers for all the "illegal" characters. (This is for both TableExt and PageExt).
The first argument for the mv command in this generated script is from --extensionObjectFileNamePattern={type}-{id}-{targetId}-{targetName}
mv 'TableExt-70000006-122-_Purch. Inv. Header_.al' TableExt_Purch.Inv.Header.al
mv 'TableExt-70000007-123-_Purch. Inv. Line_.al' TableExt_Purch.Inv.Line.al
mv 'TableExt-70000008-124-_Purch. Cr. Memo Hdr._.al' TableExt_Purch.Cr.Memo_Hdr.al
mv 'TableExt-70000009-125-_Purch. Cr. Memo Line_.al' TableExt_Purch.Cr.Memo_Line.al
mv 'TableExt-70000010-17-_G_L Entry_.al' TableExt_GL_Entry.al
mv 'TableExt-70000011-18-Customer.al' TableExt_Customer.al
mv 'TableExt-70000012-21-_Cust. Ledger Entry_.al' TableExt_Cust.Ledger_Entry.al

We have currently set the behavior to escape the illegal characters by using _. We chose this approach in order to minimize risks of collisions, but skipping it as you suggest is probably better. We'll fix that in our 14.x images

@qutreson: I successfully created AL files due to the hint of @freddydk.
However I got a problem with the extension name (inside the AL file), see my issue #5192.

Closing this issue as it appears to have been resolved. If you are still facing it, please log a new issue with some code reproducing it.


gene2transcripts.txt is an optional or must-have argument

Hi Yubang,
I have a quick question about the step of predict_sites. Does -b gene2transcripts.txt is a requirement? How is this file made exactly? Can you show me the exact code for this? Thanks so much!
Yanan

@ynren1020 Have you figured this out? I also have the same question. Thank you!


[Bug]: Jest ^29 fails after assertions when mockRejectedValue is called with a new Error()

Version
^29
Steps to reproduce
This test passes in ^28 but fails in ^29:
it('should pass when mockRejectedValue is called with a new Error object', async () => {
  const utils = {
    a: () => 'hello',
  };

  utils.a = jest.fn().mockRejectedValue(new Error('some error')); // Fails after all assertions here with "Error: some error"

  try {
    await utils.a();
  } catch (e) {
    e;
  }

  expect(1).toEqual(1);
});

Expected behavior
The test should pass
Actual behavior
An error is reported on line 6:
  console.error
    Unhandled Promise rejection: some error ; Zone: long-stack-trace ; Task: null ; Value: Error: some error

Additional context
Oddly the assertion passes and then the error happens.  This causes for a hellish time debugging.  In reality I found this in situation where I was mocking a module that a module I was testing was depending on.  Running the test results in an error in the file that creates the error object, and fails the test, even though the assertion passes.
You can verify the assertion passes if you add a expect(1).toBe(2) after the last line of this example test.  Then it will fail there and not deliver the Unhandled Promise rejection error.
Environment
System
MacOS
Node 18

Same here, how did you fix it?

By downgrading to jest 28.  I hope it gets fixed in 29…

I copied the test you provided to a freshly created repo with Jest v29.4.2 installed. Got:

It passed just like you expect. Puzzling ;D
Would you be interested to provide minimal reproduction repo?


Bed graphics are misaligned and not always consistent

Already rewrote how they work for the next update

And fixed eyes being visible while asleep


(GH-2299) Write Windows local transport commands to file

This modifies the PowerShell shell to write commands to a file for
execution when running over the local transport. This uses the same
logic we use when running commands greater than the max command length
to wrap the command in a script. This enables two necessary behaviors:
returning correct exit codes and allowing users to run commands with
pipes.
PowerShell will always exit 0 or 1 when running commands directly, even
when the command returns a different exit code (for example, running
puppet agent --detailed-exitcodes). However when executing a file with
-File, PowerShell will return the exit code returned by the script
source.
Wrapping the command in a script also works around syntactic weirdness
(waves hands) that prevents users from easily running commands with
pipes.
Closes #2299
!bug

Windows local transport returns correct exit codes and accepts pipes (#2299)
When running commands over the local transport on Windows machines,
Bolt now returns the exit code returned by the command as opposed to
just 0 or 1. It also accepts pipes as part of the command.

I verified this returns the correct exit code running bolt command run --targets localhost 'puppet apply --trace --detailed-exitcodes -e "notify { foo: }"' (#1846), and bolt command run "Get-WMIObject Win32_Service -Filter ""Name like '%rm'"" | select name,servicename" -t localhost (#2299).
I verified this at least works with Litmus at least for the current puppetlabs-concat module test suite see passing tests here, but I'm not sure that's strong enough to prove #1650 is resolved. Open to more testing scenarios!