diff --git a/panoptes_client/project.py b/panoptes_client/project.py
index fa67fd1..807d3b7 100644
--- a/panoptes_client/project.py
+++ b/panoptes_client/project.py
@@ -30,7 +30,12 @@ class Project(PanoptesObject):
     def find(cls, id='', slug=None):
         if not id and not slug:
             return None
-        return cls.where(id=id, slug=slug).next()
+        try:
+            return cls.where(id=id, slug=slug).next()
+        except StopIteration:
+            raise PanoptesAPIException(
+                "Could not find project with slug='{}'".format(slug)
+            )
 
     def get_export(
         self,

Raise something better than StopIteration in .find() when nothing is found
https://github.com/zooniverse/panoptes-python-client/blob/67e11e16cd91689e62939a6ba54ff7769259a525/panoptes_client/panoptes.py#L428
diff --git a/panoptes_client/tests/test_project.py b/panoptes_client/tests/test_project.py
index d900b75..14effae 100644
--- a/panoptes_client/tests/test_project.py
+++ b/panoptes_client/tests/test_project.py
@@ -1,6 +1,7 @@
 import unittest
 
 from panoptes_client import Project
+from panoptes_client.panoptes import PanoptesAPIException
 
 
 class TestProject(unittest.TestCase):
@@ -17,5 +18,5 @@ class TestProject(unittest.TestCase):
         self.assertEqual(p, None)
 
     def test_find_unknown_slug(self):
-        with self.assertRaises(StopIteration):
+        with self.assertRaises(PanoptesAPIException):
             Project.find(slug='invalid_slug')

pip install -e .
parse_log_pytest
pytest
pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
charset-normalizer==3.4.1
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
idna==3.10
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1734472117206/work
-e git+https://github.com/zooniverse/panoptes-python-client.git@6be958cc842488e5410814910febd6e71b14d7b0#egg=panoptes_client
pluggy @ file:///croot/pluggy_1733169602837/work
pytest @ file:///croot/pytest_1738938843180/work
requests==2.32.3
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
urllib3==2.3.0

name: panoptes-python-client
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - idna==3.10
      - requests==2.32.3
      - urllib3==2.3.0
prefix: /opt/conda/envs/panoptes-python-client

panoptes_client/tests/test_project.py::TestProject::test_find_unknown_slug
panoptes_client/tests/test_project.py::TestProject::test_find_id
panoptes_client/tests/test_project.py::TestProject::test_find_slug panoptes_client/tests/test_project.py::TestProject::test_find_unknown_id
panoptes_client/project.py
panoptes_client/project.py