diff --git a/app/apis/v0/projects.py b/app/apis/v0/projects.py
index d20a144aee456f4ce7ede4eb7289709d0983d1de..d8d722160233a89855fcdf6557f27045b4296935 100644
--- a/app/apis/v0/projects.py
+++ b/app/apis/v0/projects.py
@@ -1,6 +1,6 @@
 """Definitions of the endpoints related the projects."""
 import logging
-from typing import Any, Optional
+from typing import Any
 
 from fastapi import APIRouter, Depends, HTTPException, status
 from sqlalchemy import create_engine, text, update
@@ -38,11 +38,6 @@ def create_project(
         )
 
     server = _find_best_project_server(session, project)
-    if server is None:
-        raise HTTPException(
-            status_code=status.HTTP_507_INSUFFICIENT_STORAGE,
-            detail='No database has enough storage for this project.',
-        )
 
     # preempt the required storage
     _update_server_available_size(session, server, -project.max_size)
@@ -80,13 +75,17 @@ def create_project(
     return db_project
 
 
-def _find_best_project_server(
-    session: Session, project: Project
-) -> Optional[DBProjectServer]:
+def _find_best_project_server(session: Session, project: Project) -> DBProjectServer:
     stmt = select(DBProjectServer).where(
         DBProjectServer.available_size >= project.max_size
     )
-    return session.execute(stmt).scalars().first()
+    server = session.execute(stmt).scalars().first()
+    if server is None:
+        raise HTTPException(
+            status_code=status.HTTP_507_INSUFFICIENT_STORAGE,
+            detail='No database has enough storage for this project.',
+        )
+    return server
 
 
 def _update_server_available_size(