diff --git a/internal/derrors/derrors.go b/internal/derrors/derrors.go
index 4702ae5..ffc2325 100644
--- a/internal/derrors/derrors.go
+++ b/internal/derrors/derrors.go
@@ -64,6 +64,9 @@
 	// ProxyError is used to capture non-actionable server errors returned from the proxy.
 	ProxyError = errors.New("proxy error")
 
+	// VulnDBError is used to capture non-actionable server errors returned from vulndb.
+	VulnDBError = errors.New("vulndb error")
+
 	// PackageBuildContextNotSupported indicates that the build context for the
 	// package is not supported.
 	PackageBuildContextNotSupported = errors.New("package build context not supported")
@@ -131,6 +134,7 @@
 
 	{ProxyTimedOut, 550}, // not a real code
 	{ProxyError, 551},    // not a real code
+	{VulnDBError, 552},   // not a real code
 	// 52x and 54x errors represents modules that need to be reprocessed, and the
 	// previous status code the module had. Note that the status code
 	// matters for determining reprocessing order.
diff --git a/internal/frontend/vulns.go b/internal/frontend/vulns.go
index 57ea1bc..90aad1a 100644
--- a/internal/frontend/vulns.go
+++ b/internal/frontend/vulns.go
@@ -108,7 +108,7 @@
 func newVulnPage(ctx context.Context, client vulnc.Client, id string) (*VulnPage, error) {
 	entry, err := client.GetByID(ctx, id)
 	if err != nil {
-		return nil, err
+		return nil, derrors.VulnDBError
 	}
 	if entry == nil {
 		return nil, derrors.NotFound
@@ -136,7 +136,7 @@
 
 	ids, err := client.ListIDs(ctx)
 	if err != nil {
-		return nil, err
+		return nil, derrors.VulnDBError
 	}
 
 	entries := make([]OSVEntry, len(ids))
@@ -157,7 +157,7 @@
 		})
 	}
 	if err := g.Wait(); err != nil {
-		return nil, err
+		return nil, derrors.VulnDBError
 	}
 	return entries, nil
 }
diff --git a/internal/middleware/errorreporting.go b/internal/middleware/errorreporting.go
index 3e51989..8351e80 100644
--- a/internal/middleware/errorreporting.go
+++ b/internal/middleware/errorreporting.go
@@ -40,6 +40,10 @@
 			if w2.status == derrors.ToStatus(derrors.ProxyError) {
 				return
 			}
+			// Don't report on vulndb errors.
+			if w2.status == derrors.ToStatus(derrors.VulnDBError) {
+				return
+			}
 			report(errorreporting.Entry{
 				Error: fmt.Errorf("handler for %q returned status code %d", r.URL.Path, w2.status),
 				Req:   r,
