--- a/photutils/datasets/load.py	2026-04-18 05:26:37.000000000 +0800
+++ b/photutils/datasets/load.py	2026-04-19 14:13:01.707918411 +0800
@@ -163,8 +163,12 @@
     hdu : `~astropy.io.fits.ImageHDU`
         The 4.5 micron Spitzer image in a FITS image HDU.
     """
-    path = _get_path('spitzer_example_image.fits', location='remote',
-                     show_progress=show_progress)
+    try:
+        path = _get_path('spitzer_example_image.fits', location='remote',
+                         show_progress=show_progress)
+    except (URLError, HTTPError):   # timeout or not found
+        path = _get_path('spitzer_example_image.fits', location='local',
+                         show_progress=show_progress)
     return _load_fits_as_imagehdu(path)
 
 
@@ -187,8 +191,12 @@
     catalog : `~astropy.table.Table`
         The catalog of sources.
     """
-    path = _get_path('spitzer_example_catalog.xml', location='remote',
-                     show_progress=show_progress)
+    try:
+        path = _get_path('spitzer_example_catalog.xml', location='remote',
+                         show_progress=show_progress)
+    except Exception:   # timeout or not found
+        path = _get_path('spitzer_example_catalog.xml', location='local',
+                         show_progress=show_progress)
     return Table.read(path)
 
 
@@ -249,7 +257,10 @@
         raise ValueError(msg)
 
     filepath = f'irac_ch{channel}_flight.fits'
-    path = _get_path(filepath, location='remote', show_progress=show_progress)
+    try:
+        path = _get_path(filepath, location='remote', show_progress=show_progress)
+    except Exception:   # timeout or not found
+        path = _get_path(filepath, location='local', show_progress=show_progress)
     return _load_fits_as_imagehdu(path)
 
 
@@ -275,8 +286,12 @@
     hdu : `~astropy.io.fits.ImageHDU`
         The M67 image in a FITS image HDU.
     """
-    path = _get_path('M6707HH.fits', location='remote',
-                     show_progress=show_progress)
+    try:
+        path = _get_path('M6707HH.fits', location='remote',
+                         show_progress=show_progress)
+    except Exception:   # timeout or not found
+        path = _get_path('M6707HH.fits', location='local',
+                         show_progress=show_progress)
     return _load_fits_as_imagehdu(path)
 
 
@@ -312,7 +327,12 @@
         norm = simple_norm(hdu.data, 'sqrt', percent=99.5)
         ax.imshow(hdu.data, norm=norm, origin='lower')
     """
-    path = _get_path('hst_wfc3ir_f160w_simulated_starfield.fits',
-                     location='photutils-datasets',
-                     show_progress=show_progress)
+    try:
+        path = _get_path('hst_wfc3ir_f160w_simulated_starfield.fits',
+                         location='photutils-datasets',
+                         show_progress=show_progress)
+    except Exception:   # timeout or not found
+        path = _get_path('hst_wfc3ir_f160w_simulated_starfield.fits',
+                         location='local',
+                         show_progress=show_progress)
     return _load_fits_as_imagehdu(path)
