You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Setup schlug unter Home Assistant Core 2026.8 mit Requirements ... not found fehl (#6, #7)
Fehlerbild beim Start: Setup failed for custom integration 'bauergroup_s3compatiblebackup': Requirements for bauergroup_s3compatiblebackup not found: ['aiobotocore>=2.6.0,<3.0.0']
Ursache war die Versionsobergrenze <3.0.0 in manifest.json, nicht die Integration selbst
aiobotocore hat sein Versionsschema an die Release-Kadenz von botocore angeglichen: Auf 2.26.0 (November 2025) folgte direkt 3.0.0 (Dezember 2025); seitdem erscheinen keine 2.x-Releases mehr, die zu aktuellen botocore-Versionen passen
Home Assistant Core hat diesen Sprung in 2026.8.0 nachvollzogen und die selbst mitgelieferte Abhängigkeit von aiobotocore==2.21.1 (noch in 2026.7.x) auf aiobotocore==3.7.0 angehoben — zusätzlich wird seither botocore==1.42.97 in package_constraints.txt fest gepinnt, damit eine Requirement-Installation keine unpassende botocore-Version nachziehen kann
Die von Home Assistant bereitgestellte 3.7.0 erfüllte unsere Obergrenze <3.0.0 nicht mehr, und der daraufhin ausgelöste Nachinstallations-Versuch scheiterte am botocore-Pin — der Resolver meldete die Anforderung als unerfüllbar (die lange Fehlerausgabe im Log stammt von uv)
Obergrenze auf <4.0.0 angehoben: Damit erfüllt die von Home Assistant bereitgestellte Version die Anforderung direkt und es wird gar kein Installationsversuch mehr ausgelöst
Betroffen waren alle Installationen ab Home Assistant Core 2026.8.0; unter 2026.7.x und älter trat der Fehler nicht auf
Die Untergrenze >=2.6.0 bleibt bestehen, sodass ältere Home-Assistant-Versionen mit aiobotocore 2.x weiterhin unterstützt werden
Reine Anpassung der Versionsobergrenze — am Integrationscode war keine Änderung nötig, da die genutzte API über die Grenze 2.x → 3.x unverändert ist (AioSession, session.create_client, __aenter__/__aexit__, StreamingBody.read() / iter_chunks())
Die Breaking Changes der 3.x-Reihe betreffen diese Integration nicht:
3.0.0 untersagt das Anlegen loser ClientSession-Objekte, nachdem ein AioBaseClient seinen Kontext verlassen hat — der Client wird hier explizit über __aenter__() betreten, über __aexit__() geschlossen und danach nicht weiterverwendet
3.8.0 ändert AioStreamingBody.__aenter__ (liefert self statt der rohen aiohttp-ClientResponse) — der Response-Body wird hier ausschließlich über read() und iter_chunks() gelesen, nie als Kontextmanager verwendet