@@ -10,6 +10,7 @@ import (
1010
1111 "github.com/cloudquery/plugin-sdk/v4/caser"
1212 "github.com/cloudquery/plugin-sdk/v4/helpers"
13+ "github.com/cloudquery/plugin-sdk/v4/message"
1314 "github.com/cloudquery/plugin-sdk/v4/scheduler/metrics"
1415 "github.com/cloudquery/plugin-sdk/v4/scheduler/resolvers"
1516 "github.com/cloudquery/plugin-sdk/v4/schema"
@@ -29,6 +30,8 @@ type worker struct {
2930 invocationID string
3031 deterministicCQID bool
3132 metrics * metrics.Metrics
33+ // message channel for sending SyncError messages
34+ msgChan chan <- message.SyncMessage
3235}
3336
3437func (w * worker ) work (ctx context.Context , activeWorkSignal * activeWorkSignal ) {
@@ -51,6 +54,7 @@ func newWorker(
5154 invocationID string ,
5255 deterministicCQID bool ,
5356 m * metrics.Metrics ,
57+ msgChan chan <- message.SyncMessage ,
5458) * worker {
5559 return & worker {
5660 jobs : jobs ,
@@ -61,6 +65,7 @@ func newWorker(
6165 deterministicCQID : deterministicCQID ,
6266 invocationID : invocationID ,
6367 metrics : m ,
68+ msgChan : msgChan ,
6469 }
6570}
6671
@@ -105,6 +110,12 @@ func (w *worker) resolveTable(ctx context.Context, table *schema.Table, client s
105110 logger .Error ().Err (err ).Msg ("table resolver finished with error" )
106111 tableMetrics .OtelErrorsAdd (ctx , 1 )
107112 atomic .AddUint64 (& tableMetrics .Errors , 1 )
113+ // Send SyncError message
114+ syncErrorMsg := & message.SyncError {
115+ TableName : table .Name ,
116+ Error : err .Error (),
117+ }
118+ w .msgChan <- syncErrorMsg
108119 return
109120 }
110121 }()
0 commit comments