diff --git a/app/(prowler)/compliance/page.tsx b/app/(prowler)/compliance/page.tsx
index 8d3f8315f1..68a9a89dbe 100644
--- a/app/(prowler)/compliance/page.tsx
+++ b/app/(prowler)/compliance/page.tsx
@@ -45,10 +45,22 @@ export default async function Compliance({
const SSRComplianceGrid = async ({ scanId }: { scanId: string }) => {
const compliancesData = await getCompliancesOverview({ scanId });
+ // Check if the response contains no data
+ if (!compliancesData || compliancesData?.data?.length === 0) {
+ return (
+
+
+ No compliance data available for the selected scan.
+
+
+ );
+ }
+
+ // Handle errors returned by the API
if (compliancesData?.errors?.length > 0) {
return (
-
There is no compliance data.
+
Provide a valid scan ID.
);
}
diff --git a/components/compliance/data-compliance/data-compliance.tsx b/components/compliance/data-compliance/data-compliance.tsx
index 52484f6bd7..67e45f9ff4 100644
--- a/components/compliance/data-compliance/data-compliance.tsx
+++ b/components/compliance/data-compliance/data-compliance.tsx
@@ -11,7 +11,14 @@ interface DataComplianceProps {
export const DataCompliance = ({ scans }: DataComplianceProps) => {
const router = useRouter();
const searchParams = useSearchParams();
- const selectedScanId = searchParams.get("scanId") || scans[0]?.id;
+ const scanIdParam = searchParams.get("scanId");
+ const selectedScanId =
+ scanIdParam === "undefined" || !scanIdParam ? scans[0]?.id : scanIdParam;
+
+ if (scanIdParam === "undefined") {
+ router.replace("/compliance");
+ return null;
+ }
const handleSelectionChange = (selectedKey: string) => {
router.push(`?scanId=${selectedKey}`);