• Here is a query for the report server that shows subscription info for those that failed. You can use this as a starting point to create a query for the Data Driven subscription to run only for the ones that don't have a Last Status with the words "An error" in it.

    SELECT sub.SubscriptionID, sub.laststatus, cat.[Name] AS RptName, cat.[Path], U.UserName, sub.Description, sub.DeliveryExtension AS scheduletype

    ,CASE WHEN sub.DeliveryExtension='SharedSchedule' THEN sc.name ELSE 'Unique' END AS ScheduleName

    ,res.ScheduleID AS SQLJobID, sub.LastRuntime

    FROM ReportServer.dbo.Catalog AS cat

    INNER JOIN Reportserver.dbo.Subscriptions AS sub ON cat.ItemID = sub.Report_OID

    INNER JOIN Reportserver.dbo.ReportSchedule AS res ON cat.ItemID = res.ReportID AND sub. SubscriptionID = res.SubscriptionID

    INNER JOIN msdb.dbo.sysjobs AS job ON CAST(res.ScheduleID AS VARCHAR(36)) = job.[name]

    INNER JOIN msdb.dbo.sysjobschedules AS sch ON job.job_id = sch.job_id

    INNER JOIN Reportserver.dbo.Users U ON U.UserID = sub.OwnerID

    LEFT JOIN Reportserver.dbo.Schedule Sc ON Sc.ScheduleID = res.ScheduleID

    Where sub.LastStatus Like '%An error%'