diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 5774c3e2465d0724f97cda395bc92b65985136a1..55ec28f9118fbf8f471b257bb3a399a430f78ce3 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -37,7 +37,7 @@ on:
         type: boolean
 
 env:
-  CACHE_VERSION: 10
+  CACHE_VERSION: 11
   UV_CACHE_VERSION: 1
   MYPY_CACHE_VERSION: 9
   HA_SHORT_VERSION: "2024.11"
diff --git a/script/licenses.py b/script/licenses.py
index 7a2ddc814de0a9fb192c066ab1016f982d91738f..cdbd02732425c5906594f48efa10d97280b28abe 100644
--- a/script/licenses.py
+++ b/script/licenses.py
@@ -167,6 +167,8 @@ EXCEPTIONS = {
     "tapsaff",  # https://github.com/bazwilliams/python-taps-aff/pull/5
     "vincenty",  # Public domain
     "zeversolar",  # https://github.com/kvanzuijlen/zeversolar/pull/46
+    # Using License-Expression (with hatchling)
+    "ftfy",  # Apache-2.0
 }
 
 TODO = {