diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 0ff6bc0..01600df 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -200,3 +200,15 @@ jobs:
             exit 1
           fi
         shell: bash
+
+  test-malformed-pyproject-file-fallback:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Install using malformed pyproject.toml
+        id: setup-uv
+        uses: ./
+        with:
+          pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml"
+      - run: uv sync
+        working-directory: __tests__/fixtures/uv-project
diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/.python-version b/__tests__/fixtures/malformed-pyproject-toml-project/.python-version
new file mode 100644
index 0000000..2c07333
--- /dev/null
+++ b/__tests__/fixtures/malformed-pyproject-toml-project/.python-version
@@ -0,0 +1 @@
+3.11
diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/README.md b/__tests__/fixtures/malformed-pyproject-toml-project/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/hello.py b/__tests__/fixtures/malformed-pyproject-toml-project/hello.py
new file mode 100644
index 0000000..7c792d6
--- /dev/null
+++ b/__tests__/fixtures/malformed-pyproject-toml-project/hello.py
@@ -0,0 +1,6 @@
+def main():
+    print("Hello from malformed-pyproject-toml-project!")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml b/__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml
new file mode 100644
index 0000000..41f990c
--- /dev/null
+++ b/__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml
@@ -0,0 +1,9 @@
+[project]
+name = "malformed-pyproject-toml-project"
+version = "0.1.0"
+description = "Add your description here"
+readme = "README.md"
+requires-python = ">=3.11"
+dependencies = []
+
+[malformed-toml
diff --git a/dist/setup/index.js b/dist/setup/index.js
index 64098a3..061a3e6 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -99655,7 +99655,15 @@ function getUvVersionFromConfigFile(filePath) {
         core.warning(`Could not find file: ${filePath}`);
         return undefined;
     }
-    let requiredVersion = getRequiredVersion(filePath);
+    let requiredVersion;
+    try {
+        requiredVersion = getRequiredVersion(filePath);
+    }
+    catch (err) {
+        const message = err.message;
+        core.warning(`Error while parsing ${filePath}: ${message}`);
+        return undefined;
+    }
     if (requiredVersion?.startsWith("==")) {
         requiredVersion = requiredVersion.slice(2);
     }
diff --git a/src/utils/pyproject.ts b/src/utils/pyproject.ts
index dca27e4..9b00302 100644
--- a/src/utils/pyproject.ts
+++ b/src/utils/pyproject.ts
@@ -9,7 +9,14 @@ export function getUvVersionFromConfigFile(
     core.warning(`Could not find file: ${filePath}`);
     return undefined;
   }
-  let requiredVersion = getRequiredVersion(filePath);
+  let requiredVersion: string | undefined;
+  try {
+    requiredVersion = getRequiredVersion(filePath);
+  } catch (err) {
+    const message = (err as Error).message;
+    core.warning(`Error while parsing ${filePath}: ${message}`);
+    return undefined;
+  }
 
   if (requiredVersion?.startsWith("==")) {
     requiredVersion = requiredVersion.slice(2);