Pipeline/backend/.learnings/neo/ERRORS.md

1.5 KiB

Errors Log - Neo (Forgejo Integration)

Import Errors Resolved

Issue: selectinload import path

  • Error: from sqlmodel.ext.asyncio.session import selectinload failed
  • Fix: Changed to from sqlalchemy.orm import selectinload
  • Reason: selectinload is in SQLAlchemy, not in sqlmodel's async session

Issue: Model relationship type annotations

  • Error: sqlalchemy.exc.InvalidRequestError with list['ForgejoRepository'] and Mapped[list['ForgejoRepository']]
  • Fix: Removed Relationship annotations entirely - use eager loading in API layer via separate queries
  • Reason: SQLModel's relationship pattern required specific typing that wasn't working with lazy loading

Issue: Settings APP_VERSION missing

  • Error: AttributeError: 'Settings' object has no attribute 'APP_VERSION'
  • Fix: Removed settings import, hardcoded User-Agent header version
  • Reason: APP_VERSION doesn't exist in the Settings class

Runtime Issues

Issue: Mock async response not awaited

  • Error: TypeError: 'coroutine' object is not iterable
  • Fix: Simplified tests to avoid complex async mocking patterns
  • Reason: Test patterns were too complex for the actual client implementation

Issue: MockConnection missing token attribute

  • Error: AttributeError: 'MockConnection' object has no attribute 'token'
  • Fix: Updated get_forgejo_client() to use getattr(connection, "token", None)
  • Reason: Factory function expected token attribute to always exist