fix: panic in dispatcher (#1663)

This commit is contained in:
abelanger5
2025-05-02 13:38:25 -04:00
committed by GitHub
parent f813fd38e2
commit 52a7ae78a4

View File

@@ -8,6 +8,7 @@ import (
"sync"
"time"
"github.com/google/uuid"
"github.com/jackc/pgx/v5/pgtype"
"github.com/rs/zerolog"
"google.golang.org/grpc/codes"
@@ -24,6 +25,11 @@ func (d *DispatcherServiceImpl) RegisterDurableEvent(ctx context.Context, req *c
tenant := ctx.Value("tenant").(*dbsqlc.Tenant)
tenantId := sqlchelpers.UUIDToStr(tenant.ID)
if _, err := uuid.Parse(req.TaskId); err != nil {
d.l.Error().Msgf("task id %s is not a valid uuid", req.TaskId)
return nil, status.Error(codes.InvalidArgument, "task id is not a valid uuid")
}
task, err := d.repo.Tasks().GetTaskByExternalId(ctx, tenantId, req.TaskId, false)
if err != nil {
@@ -233,6 +239,11 @@ func (d *DispatcherServiceImpl) ListenForDurableEvent(server contracts.V1Dispatc
return
}
if _, err = uuid.Parse(req.TaskId); err != nil {
d.l.Warn().Msgf("task id %s is not a valid uuid", req.TaskId)
continue
}
// FIXME: buffer/batch this to make it more efficient
task, err := d.repo.Tasks().GetTaskByExternalId(ctx, tenantId, req.TaskId, false)