Skip to content

ERROR SESSION #129

@wisnubaldas

Description

@wisnubaldas

halo abang-abang, saya mendapatkan error dengan koneksi database lebih dari satu, berikut error nya

ERROR SESSION: (asyncmy.errors.InternalError) Packet sequence number wrong - got 52 expected 1
(Background on this error at: https://sqlalche.me/e/20/2j85)

INFO:     127.0.0.1:50768 - "GET /openapi.json HTTP/1.1" 200 OK
2025-07-04 09:55:50,844 INFO sqlalchemy.engine.Engine SELECT DATABASE()
2025-07-04 09:55:50,844 INFO sqlalchemy.engine.Engine [raw sql] ()
2025-07-04 09:55:50,845 INFO sqlalchemy.engine.Engine SELECT @@sql_mode
2025-07-04 09:55:50,845 INFO sqlalchemy.engine.Engine [raw sql] ()
2025-07-04 09:55:50,847 INFO sqlalchemy.engine.Engine SELECT @@lower_case_table_names
2025-07-04 09:55:50,847 INFO sqlalchemy.engine.Engine [raw sql] ()
2025-07-04 09:55:50,849 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2025-07-04 09:55:50,861 INFO sqlalchemy.engine.Engine SELECT get_imp_in.id_kms, get_imp_in.kd_dok, get_imp_in.kd_tps, get_imp_in.nm_angkut, get_imp_in.no_voy_fl
ight, get_imp_in.call_sign, get_imp_in.tg_tiba, get_imp_in.kd_gudang, get_imp_in.ref_num, get_imp_in.no_bl_awb, get_imp_in.tgl_bl_awb, get_imp_in.no_master_bl_a
wb, get_imp_in.tgl_master_bl_awb, get_imp_in.id_consignee, get_imp_in.consignee, get_imp_in.bruto, get_imp_in.no_bc11, get_imp_in.tgl_bc11, get_imp_in.no_pos_bc
11, get_imp_in.cont_asal, get_imp_in.seri_kem, get_imp_in.kd_kem, get_imp_in.jml_kem, get_imp_in.kd_timbun, get_imp_in.kd_dok_inout, get_imp_in.no_dok_inout, ge
t_imp_in.tgl_dok_inout, get_imp_in.wk_inout, get_imp_in.kd_sar_angkut, get_imp_in.no_pol, get_imp_in.pel_muat, get_imp_in.pel_transit, get_imp_in.pel_bongkar, g
et_imp_in.gudang_tujuan, get_imp_in.kode_kantor, get_imp_in.no_daftar_pabean, get_imp_in.tgl_daftar_pabean, get_imp_in.no_segel_bc, get_imp_in.tg_segel_bc, get_
imp_in.no_ijin_tps, get_imp_in.tgl_ijin_tps, get_imp_in.flag_transfer, get_imp_in.date_create, get_imp_in.date_update, get_imp_in.flag_gateout, get_imp_in.respon, get_imp_in.token, get_imp_in.created_at
FROM get_imp_in
2025-07-04 09:55:50,861 INFO sqlalchemy.engine.Engine [generated in 0.00109s] ()
2025-07-04 09:55:50,864 INFO sqlalchemy.engine.Engine ROLLBACK
ERROR SESSION: (asyncmy.errors.InternalError) Packet sequence number wrong - got 52 expected 1
(Background on this error at: https://sqlalche.me/e/20/2j85)
Session close saaaaatttttt.....
INFO:     127.0.0.1:50771 - "POST /tpsonline-application/inventory/12 HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 409, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\fastapi\applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 409, in _sentry_patched_asgi_app
    return await middleware(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\asgi.py", line 174, in _run_asgi3
    return await self._run_app(scope, receive, send, asgi_version=3)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\asgi.py", line 276, in _run_app
    raise exc from None
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\asgi.py", line 271, in _run_app
    return await self.app(
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 200, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
    raise exc
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 200, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 173, in __call__
    with recv_stream, send_stream, collapse_excgroups():
  File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_utils.py", line 82, in collapse_excgroups
    raise exc
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 175, in __call__
    response = await self.dispatch_func(request, call_next)
  File "C:\Users\wisnu\Documents\Belajar\fastapictos\app\core\logger_middleware.py", line 28, in dispatch
    response: Response = await call_next(request)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 153, in call_next
    raise app_exc
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 140, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 298, in _sentry_exceptionmiddleware_call
    await old_call(self, scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 200, in _create_span_call
    return await old_call(app, scope, new_receive, new_send, **kwargs)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 714, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 734, in app
    await route.handle(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 73, in app
    response = await f(request)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\fastapi.py", line 143, in _sentry_app
    return await old_app(*args, **kwargs)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\fastapi\routing.py", line 290, in app
    async with AsyncExitStack() as async_exit_stack:
  File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 714, in __aexit__
    raise exc_details[1]
  File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 697, in __aexit__
    cb_suppress = await cb(*exc_details)
  File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 217, in __aexit__
    await self.gen.athrow(typ, value, traceback)
  File "C:\Users\wisnu\Documents\Belajar\fastapictos\app\db\mysql1.py", line 17, in get_db1_session
    await session.close()
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\ext\asyncio\session.py", line 1031, in close
    await greenlet_spawn(self.sync_session.close)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 201, in greenlet_spawn
    result = context.throw(*sys.exc_info())
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\session.py", line 2521, in close
    self._close_impl(invalidate=False)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\session.py", line 2590, in _close_impl
    transaction.close(invalidate)
  File "<string>", line 2, in close
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\state_changes.py", line 139, in _go
    ret_value = fn(self, *arg, **kw)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\session.py", line 1419, in close
    transaction.close()
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2586, in close
    self._do_close()
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2724, in _do_close
    self._close_impl()
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2710, in _close_impl
    self._connection_rollback_impl()
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2702, in _connection_rollback_impl
    self.connection._rollback_impl()
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1127, in _rollback_impl
    self._handle_dbapi_exception(e, None, None, None, None)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1125, in _rollback_impl
    self.engine.dialect.do_rollback(self.connection)
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\default.py", line 703, in do_rollback
    dbapi_connection.rollback()
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\dialects\mysql\asyncmy.py", line 221, in rollback
    self.await_(self._connection.rollback())
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
  File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
  File "asyncmy\\connection.pyx", line 414, in rollback
    await self._read_ok_packet()
  File "asyncmy\\connection.pyx", line 377, in _read_ok_packet
    pkt = await self.read_packet()
  File "asyncmy\\connection.pyx", line 629, in read_packet
    raise errors.InternalError(
sqlalchemy.exc.InternalError: (asyncmy.errors.InternalError) Packet sequence number wrong - got 52 expected 1
(Background on this error at: https://sqlalche.me/e/20/2j85)

udah di tanya chat gpt jawabannya bolak-balik saja, tidak ada solusi, adakah yg tau permasalahan saya?
mungkin bisa review code saya juga:

route.py

from fastapi import Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from app.db.mysql1 import get_db1_session

from app.utils.logger import logger
from app.core.config import SwaggerTag
from app.core.router_factory import create_router
from app.schemas.tpsonline.get_imp_in_schema import GateImpInShowSchema
from app.services.tpsonline.inventory_service import inventory_by_id

router = create_router(SwaggerTag.TPSONLINEAPP)


@router.post('/inventory/{id_kms}',
            summary="Menampilkan data inventory at TPS warehouse ",
            response_model=GateImpInShowSchema)
async def get_inventory(id_kms: int, db: AsyncSession = Depends(get_db1_session)):

    return await inventory_by_id(db, id_kms)
    # if not db_item:
    #     raise HTTPException(status_code=404, detail="Item not found")
    # return db_item

mysql1.py

# ---------------- db/mysql1.py ----------------
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from sqlalchemy.orm import declarative_base
from app.core.config import env

engine1 = create_async_engine(env.MYSQL1_URL, echo=True, pool_recycle=1800, pool_pre_ping=True)
SessionLocal1 = async_sessionmaker(bind=engine1, class_=AsyncSession, expire_on_commit=False)
Base1 = declarative_base()


async def get_db1_session():
    try:
        async with SessionLocal1() as session:
            try:
                yield session
            finally:
                await session.close()
    except Exception as e:
        print("ERROR SESSION:", str(e))
        raise
    finally:
        print(f"Session close .....")

mysql2.py

from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from sqlalchemy.orm import declarative_base
from app.core.config import env

engine2 = create_async_engine(env.MYSQL2_URL, echo=True, pool_recycle=1800, pool_pre_ping=True)
SessionLocal2 = async_sessionmaker(bind=engine2, class_=AsyncSession, expire_on_commit=False)
Base2 = declarative_base()

async def get_db2_session():
    async with SessionLocal2() as session:
        yield session

inventory.py

from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import exc

from app.models.tpsonline.get_imp_in import GetImpIn


async def inventory_by_id(db, id_kms:int):
    try:
        result = await db.execute(select(GetImpIn))
        return result.scalars().all()

        # result = await db.execute(select(GetImpIn).where(GetImpIn.id_kms == id_kms))
        # return result.first()
    except exc.DBAPIError as e:
        raise print(f"DBAPIError: {e}")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions