@adaptic/backend-legacy 0.0.903 → 0.0.905
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ABTest.cjs +291 -63
- package/Account.cjs +291 -63
- package/AccountLinkingRequest.cjs +291 -63
- package/Action.cjs +291 -63
- package/Alert.cjs +291 -63
- package/Allocation.cjs +291 -63
- package/AlpacaAccount.cjs +291 -63
- package/AnalyticsConfiguration.cjs +291 -63
- package/AnalyticsSnapshot.cjs +291 -63
- package/Asset.cjs +291 -63
- package/AuditLog.cjs +291 -63
- package/Authenticator.cjs +291 -63
- package/Configuration.cjs +291 -63
- package/ConflictEvent.cjs +291 -63
- package/ConnectionHealthSnapshot.cjs +291 -63
- package/Customer.cjs +291 -63
- package/DeadLetterMessage.cjs +291 -63
- package/EconomicEvent.cjs +291 -63
- package/Event.cjs +291 -63
- package/EventSnapshot.cjs +291 -63
- package/FeatureImportanceAnalysis.cjs +291 -63
- package/InstitutionalFlowSignal.cjs +291 -63
- package/InstitutionalHolding.cjs +291 -63
- package/InstitutionalSentimentAlerts.cjs +291 -63
- package/InstitutionalSentimentErrors.cjs +291 -63
- package/InstitutionalSentimentHistory.cjs +291 -63
- package/InstitutionalSentimentMetrics.cjs +291 -63
- package/InviteToken.cjs +291 -63
- package/LinkedProvider.cjs +291 -63
- package/MLTrainingData.cjs +291 -63
- package/MarketSentiment.cjs +291 -63
- package/ModelArtifact.cjs +291 -63
- package/ModelVersion.cjs +291 -63
- package/ModelVersionArtifact.cjs +291 -63
- package/NewsArticle.cjs +291 -63
- package/NewsArticleAssetSentiment.cjs +291 -63
- package/OptionsContract.cjs +291 -63
- package/OptionsGreeksHistory.cjs +291 -63
- package/OptionsPosition.cjs +291 -63
- package/OptionsTradeExecution.cjs +291 -63
- package/PortfolioGreeksHistory.cjs +291 -63
- package/ScheduledOptionOrder.cjs +291 -63
- package/Session.cjs +291 -63
- package/SignalGeneratorMetrics.cjs +291 -63
- package/SignalLineage.cjs +291 -63
- package/SignalOutcome.cjs +291 -63
- package/SignalPriorityQueue.cjs +291 -63
- package/SyncEvent.cjs +291 -63
- package/SystemAlert.cjs +291 -63
- package/Trade.cjs +291 -63
- package/TradeAuditEvent.cjs +291 -63
- package/TradeExecutionHistory.cjs +291 -63
- package/User.cjs +291 -63
- package/VerificationToken.cjs +291 -63
- package/WaitlistEntry.cjs +291 -63
- package/esm/ABTest.d.ts.map +1 -1
- package/esm/ABTest.js.map +1 -1
- package/esm/ABTest.mjs +255 -27
- package/esm/Account.d.ts.map +1 -1
- package/esm/Account.js.map +1 -1
- package/esm/Account.mjs +255 -27
- package/esm/AccountLinkingRequest.d.ts.map +1 -1
- package/esm/AccountLinkingRequest.js.map +1 -1
- package/esm/AccountLinkingRequest.mjs +255 -27
- package/esm/Action.d.ts.map +1 -1
- package/esm/Action.js.map +1 -1
- package/esm/Action.mjs +255 -27
- package/esm/Alert.d.ts.map +1 -1
- package/esm/Alert.js.map +1 -1
- package/esm/Alert.mjs +255 -27
- package/esm/Allocation.d.ts.map +1 -1
- package/esm/Allocation.js.map +1 -1
- package/esm/Allocation.mjs +255 -27
- package/esm/AlpacaAccount.d.ts.map +1 -1
- package/esm/AlpacaAccount.js.map +1 -1
- package/esm/AlpacaAccount.mjs +255 -27
- package/esm/AnalyticsConfiguration.d.ts.map +1 -1
- package/esm/AnalyticsConfiguration.js.map +1 -1
- package/esm/AnalyticsConfiguration.mjs +255 -27
- package/esm/AnalyticsSnapshot.d.ts.map +1 -1
- package/esm/AnalyticsSnapshot.js.map +1 -1
- package/esm/AnalyticsSnapshot.mjs +255 -27
- package/esm/Asset.d.ts.map +1 -1
- package/esm/Asset.js.map +1 -1
- package/esm/Asset.mjs +255 -27
- package/esm/AuditLog.d.ts.map +1 -1
- package/esm/AuditLog.js.map +1 -1
- package/esm/AuditLog.mjs +255 -27
- package/esm/Authenticator.d.ts.map +1 -1
- package/esm/Authenticator.js.map +1 -1
- package/esm/Authenticator.mjs +255 -27
- package/esm/Configuration.d.ts.map +1 -1
- package/esm/Configuration.js.map +1 -1
- package/esm/Configuration.mjs +255 -27
- package/esm/ConflictEvent.d.ts.map +1 -1
- package/esm/ConflictEvent.js.map +1 -1
- package/esm/ConflictEvent.mjs +255 -27
- package/esm/ConnectionHealthSnapshot.d.ts.map +1 -1
- package/esm/ConnectionHealthSnapshot.js.map +1 -1
- package/esm/ConnectionHealthSnapshot.mjs +255 -27
- package/esm/Customer.d.ts.map +1 -1
- package/esm/Customer.js.map +1 -1
- package/esm/Customer.mjs +255 -27
- package/esm/DeadLetterMessage.d.ts.map +1 -1
- package/esm/DeadLetterMessage.js.map +1 -1
- package/esm/DeadLetterMessage.mjs +255 -27
- package/esm/EconomicEvent.d.ts.map +1 -1
- package/esm/EconomicEvent.js.map +1 -1
- package/esm/EconomicEvent.mjs +255 -27
- package/esm/Event.d.ts.map +1 -1
- package/esm/Event.js.map +1 -1
- package/esm/Event.mjs +255 -27
- package/esm/EventSnapshot.d.ts.map +1 -1
- package/esm/EventSnapshot.js.map +1 -1
- package/esm/EventSnapshot.mjs +255 -27
- package/esm/FeatureImportanceAnalysis.d.ts.map +1 -1
- package/esm/FeatureImportanceAnalysis.js.map +1 -1
- package/esm/FeatureImportanceAnalysis.mjs +255 -27
- package/esm/InstitutionalFlowSignal.d.ts.map +1 -1
- package/esm/InstitutionalFlowSignal.js.map +1 -1
- package/esm/InstitutionalFlowSignal.mjs +255 -27
- package/esm/InstitutionalHolding.d.ts.map +1 -1
- package/esm/InstitutionalHolding.js.map +1 -1
- package/esm/InstitutionalHolding.mjs +255 -27
- package/esm/InstitutionalSentimentAlerts.d.ts.map +1 -1
- package/esm/InstitutionalSentimentAlerts.js.map +1 -1
- package/esm/InstitutionalSentimentAlerts.mjs +255 -27
- package/esm/InstitutionalSentimentErrors.d.ts.map +1 -1
- package/esm/InstitutionalSentimentErrors.js.map +1 -1
- package/esm/InstitutionalSentimentErrors.mjs +255 -27
- package/esm/InstitutionalSentimentHistory.d.ts.map +1 -1
- package/esm/InstitutionalSentimentHistory.js.map +1 -1
- package/esm/InstitutionalSentimentHistory.mjs +255 -27
- package/esm/InstitutionalSentimentMetrics.d.ts.map +1 -1
- package/esm/InstitutionalSentimentMetrics.js.map +1 -1
- package/esm/InstitutionalSentimentMetrics.mjs +255 -27
- package/esm/InviteToken.d.ts.map +1 -1
- package/esm/InviteToken.js.map +1 -1
- package/esm/InviteToken.mjs +255 -27
- package/esm/LinkedProvider.d.ts.map +1 -1
- package/esm/LinkedProvider.js.map +1 -1
- package/esm/LinkedProvider.mjs +255 -27
- package/esm/MLTrainingData.d.ts.map +1 -1
- package/esm/MLTrainingData.js.map +1 -1
- package/esm/MLTrainingData.mjs +255 -27
- package/esm/MarketSentiment.d.ts.map +1 -1
- package/esm/MarketSentiment.js.map +1 -1
- package/esm/MarketSentiment.mjs +255 -27
- package/esm/ModelArtifact.d.ts.map +1 -1
- package/esm/ModelArtifact.js.map +1 -1
- package/esm/ModelArtifact.mjs +255 -27
- package/esm/ModelVersion.d.ts.map +1 -1
- package/esm/ModelVersion.js.map +1 -1
- package/esm/ModelVersion.mjs +255 -27
- package/esm/ModelVersionArtifact.d.ts.map +1 -1
- package/esm/ModelVersionArtifact.js.map +1 -1
- package/esm/ModelVersionArtifact.mjs +255 -27
- package/esm/NewsArticle.d.ts.map +1 -1
- package/esm/NewsArticle.js.map +1 -1
- package/esm/NewsArticle.mjs +255 -27
- package/esm/NewsArticleAssetSentiment.d.ts.map +1 -1
- package/esm/NewsArticleAssetSentiment.js.map +1 -1
- package/esm/NewsArticleAssetSentiment.mjs +255 -27
- package/esm/OptionsContract.d.ts.map +1 -1
- package/esm/OptionsContract.js.map +1 -1
- package/esm/OptionsContract.mjs +255 -27
- package/esm/OptionsGreeksHistory.d.ts.map +1 -1
- package/esm/OptionsGreeksHistory.js.map +1 -1
- package/esm/OptionsGreeksHistory.mjs +255 -27
- package/esm/OptionsPosition.d.ts.map +1 -1
- package/esm/OptionsPosition.js.map +1 -1
- package/esm/OptionsPosition.mjs +255 -27
- package/esm/OptionsTradeExecution.d.ts.map +1 -1
- package/esm/OptionsTradeExecution.js.map +1 -1
- package/esm/OptionsTradeExecution.mjs +255 -27
- package/esm/PortfolioGreeksHistory.d.ts.map +1 -1
- package/esm/PortfolioGreeksHistory.js.map +1 -1
- package/esm/PortfolioGreeksHistory.mjs +255 -27
- package/esm/ScheduledOptionOrder.d.ts.map +1 -1
- package/esm/ScheduledOptionOrder.js.map +1 -1
- package/esm/ScheduledOptionOrder.mjs +255 -27
- package/esm/Session.d.ts.map +1 -1
- package/esm/Session.js.map +1 -1
- package/esm/Session.mjs +255 -27
- package/esm/SignalGeneratorMetrics.d.ts.map +1 -1
- package/esm/SignalGeneratorMetrics.js.map +1 -1
- package/esm/SignalGeneratorMetrics.mjs +255 -27
- package/esm/SignalLineage.d.ts.map +1 -1
- package/esm/SignalLineage.js.map +1 -1
- package/esm/SignalLineage.mjs +255 -27
- package/esm/SignalOutcome.d.ts.map +1 -1
- package/esm/SignalOutcome.js.map +1 -1
- package/esm/SignalOutcome.mjs +255 -27
- package/esm/SignalPriorityQueue.d.ts.map +1 -1
- package/esm/SignalPriorityQueue.js.map +1 -1
- package/esm/SignalPriorityQueue.mjs +255 -27
- package/esm/SyncEvent.d.ts.map +1 -1
- package/esm/SyncEvent.js.map +1 -1
- package/esm/SyncEvent.mjs +255 -27
- package/esm/SystemAlert.d.ts.map +1 -1
- package/esm/SystemAlert.js.map +1 -1
- package/esm/SystemAlert.mjs +255 -27
- package/esm/Trade.d.ts.map +1 -1
- package/esm/Trade.js.map +1 -1
- package/esm/Trade.mjs +255 -27
- package/esm/TradeAuditEvent.d.ts.map +1 -1
- package/esm/TradeAuditEvent.js.map +1 -1
- package/esm/TradeAuditEvent.mjs +255 -27
- package/esm/TradeExecutionHistory.d.ts.map +1 -1
- package/esm/TradeExecutionHistory.js.map +1 -1
- package/esm/TradeExecutionHistory.mjs +255 -27
- package/esm/User.d.ts.map +1 -1
- package/esm/User.js.map +1 -1
- package/esm/User.mjs +255 -27
- package/esm/VerificationToken.d.ts.map +1 -1
- package/esm/VerificationToken.js.map +1 -1
- package/esm/VerificationToken.mjs +255 -27
- package/esm/WaitlistEntry.d.ts.map +1 -1
- package/esm/WaitlistEntry.js.map +1 -1
- package/esm/WaitlistEntry.mjs +255 -27
- package/esm/middleware/audit-logger.d.ts +0 -7
- package/esm/middleware/audit-logger.d.ts.map +1 -1
- package/esm/middleware/audit-logger.js.map +1 -1
- package/esm/middleware/audit-logger.mjs +5 -3
- package/esm/prismaClient.d.ts.map +1 -1
- package/esm/prismaClient.js.map +1 -1
- package/esm/prismaClient.mjs +38 -9
- package/package.json +1 -1
- package/prismaClient.cjs +38 -9
package/InviteToken.cjs
CHANGED
|
@@ -179,7 +179,7 @@ exports.InviteToken = {
|
|
|
179
179
|
* @returns The created InviteToken or null.
|
|
180
180
|
*/
|
|
181
181
|
async create(props, globalClient) {
|
|
182
|
-
var _a, _b, _c, _d, _e;
|
|
182
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
183
183
|
// Maximum number of retries for database connection issues
|
|
184
184
|
const MAX_RETRIES = 3;
|
|
185
185
|
let retryCount = 0;
|
|
@@ -488,21 +488,52 @@ exports.InviteToken = {
|
|
|
488
488
|
}
|
|
489
489
|
catch (error) {
|
|
490
490
|
lastError = error;
|
|
491
|
+
// Check for constraint violations FIRST - these are NEVER retryable
|
|
492
|
+
const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
|
|
493
|
+
((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
|
|
494
|
+
((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
|
|
495
|
+
((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
|
|
496
|
+
((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
|
|
497
|
+
((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
|
|
498
|
+
((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
|
|
499
|
+
((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
|
|
500
|
+
if (isConstraintViolation) {
|
|
501
|
+
const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
|
|
502
|
+
logger_1.logger.error("Non-retryable constraint violation in createOneInviteToken", {
|
|
503
|
+
operation: 'createOneInviteToken',
|
|
504
|
+
model: 'InviteToken',
|
|
505
|
+
error: String(error),
|
|
506
|
+
constraintName: constraintMatch ? constraintMatch[1] : undefined,
|
|
507
|
+
errorCategory: 'CONSTRAINT_VIOLATION',
|
|
508
|
+
isRetryable: false,
|
|
509
|
+
});
|
|
510
|
+
throw error;
|
|
511
|
+
}
|
|
491
512
|
// Check if this is a database connection error that we should retry
|
|
492
|
-
const isConnectionError = ((
|
|
493
|
-
((
|
|
494
|
-
((
|
|
495
|
-
((
|
|
496
|
-
(error.networkError && ((
|
|
513
|
+
const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
|
|
514
|
+
((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
|
|
515
|
+
((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
|
|
516
|
+
((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
|
|
517
|
+
(error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
|
|
497
518
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
498
519
|
retryCount++;
|
|
499
520
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
500
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
521
|
+
logger_1.logger.warn("Database connection error in createOneInviteToken, retrying...", {
|
|
522
|
+
operation: 'createOneInviteToken',
|
|
523
|
+
model: 'InviteToken',
|
|
524
|
+
attempt: retryCount,
|
|
525
|
+
maxRetries: MAX_RETRIES,
|
|
526
|
+
});
|
|
501
527
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
502
528
|
continue;
|
|
503
529
|
}
|
|
504
|
-
// Log
|
|
505
|
-
logger_1.logger.error("Database
|
|
530
|
+
// Log structured error details and rethrow
|
|
531
|
+
logger_1.logger.error("Database create operation failed", {
|
|
532
|
+
operation: 'createOneInviteToken',
|
|
533
|
+
model: 'InviteToken',
|
|
534
|
+
error: String(error),
|
|
535
|
+
isRetryable: isConnectionError,
|
|
536
|
+
});
|
|
506
537
|
throw error;
|
|
507
538
|
}
|
|
508
539
|
}
|
|
@@ -517,7 +548,7 @@ exports.InviteToken = {
|
|
|
517
548
|
* @returns The count of created records or null.
|
|
518
549
|
*/
|
|
519
550
|
async createMany(props, globalClient) {
|
|
520
|
-
var _a, _b, _c, _d, _e;
|
|
551
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
521
552
|
// Maximum number of retries for database connection issues
|
|
522
553
|
const MAX_RETRIES = 3;
|
|
523
554
|
let retryCount = 0;
|
|
@@ -566,21 +597,52 @@ exports.InviteToken = {
|
|
|
566
597
|
}
|
|
567
598
|
catch (error) {
|
|
568
599
|
lastError = error;
|
|
600
|
+
// Check for constraint violations FIRST - these are NEVER retryable
|
|
601
|
+
const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
|
|
602
|
+
((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
|
|
603
|
+
((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
|
|
604
|
+
((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
|
|
605
|
+
((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
|
|
606
|
+
((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
|
|
607
|
+
((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
|
|
608
|
+
((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
|
|
609
|
+
if (isConstraintViolation) {
|
|
610
|
+
const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
|
|
611
|
+
logger_1.logger.error("Non-retryable constraint violation in createManyInviteToken", {
|
|
612
|
+
operation: 'createManyInviteToken',
|
|
613
|
+
model: 'InviteToken',
|
|
614
|
+
error: String(error),
|
|
615
|
+
constraintName: constraintMatch ? constraintMatch[1] : undefined,
|
|
616
|
+
errorCategory: 'CONSTRAINT_VIOLATION',
|
|
617
|
+
isRetryable: false,
|
|
618
|
+
});
|
|
619
|
+
throw error;
|
|
620
|
+
}
|
|
569
621
|
// Check if this is a database connection error that we should retry
|
|
570
|
-
const isConnectionError = ((
|
|
571
|
-
((
|
|
572
|
-
((
|
|
573
|
-
((
|
|
574
|
-
(error.networkError && ((
|
|
622
|
+
const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
|
|
623
|
+
((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
|
|
624
|
+
((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
|
|
625
|
+
((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
|
|
626
|
+
(error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
|
|
575
627
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
576
628
|
retryCount++;
|
|
577
629
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
578
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
630
|
+
logger_1.logger.warn("Database connection error in createManyInviteToken, retrying...", {
|
|
631
|
+
operation: 'createManyInviteToken',
|
|
632
|
+
model: 'InviteToken',
|
|
633
|
+
attempt: retryCount,
|
|
634
|
+
maxRetries: MAX_RETRIES,
|
|
635
|
+
});
|
|
579
636
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
580
637
|
continue;
|
|
581
638
|
}
|
|
582
|
-
// Log
|
|
583
|
-
logger_1.logger.error("Database
|
|
639
|
+
// Log structured error details and rethrow
|
|
640
|
+
logger_1.logger.error("Database createMany operation failed", {
|
|
641
|
+
operation: 'createManyInviteToken',
|
|
642
|
+
model: 'InviteToken',
|
|
643
|
+
error: String(error),
|
|
644
|
+
isRetryable: isConnectionError,
|
|
645
|
+
});
|
|
584
646
|
throw error;
|
|
585
647
|
}
|
|
586
648
|
}
|
|
@@ -595,7 +657,7 @@ exports.InviteToken = {
|
|
|
595
657
|
* @returns The updated InviteToken or null.
|
|
596
658
|
*/
|
|
597
659
|
async update(props, globalClient) {
|
|
598
|
-
var _a, _b, _c, _d, _e;
|
|
660
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
599
661
|
// Maximum number of retries for database connection issues
|
|
600
662
|
const MAX_RETRIES = 3;
|
|
601
663
|
let retryCount = 0;
|
|
@@ -1679,21 +1741,55 @@ exports.InviteToken = {
|
|
|
1679
1741
|
}
|
|
1680
1742
|
catch (error) {
|
|
1681
1743
|
lastError = error;
|
|
1744
|
+
// Check for constraint violations FIRST - these are NEVER retryable
|
|
1745
|
+
const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
|
|
1746
|
+
((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
|
|
1747
|
+
((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
|
|
1748
|
+
((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
|
|
1749
|
+
((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
|
|
1750
|
+
((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
|
|
1751
|
+
((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
|
|
1752
|
+
((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
|
|
1753
|
+
if (isConstraintViolation) {
|
|
1754
|
+
const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
|
|
1755
|
+
logger_1.logger.error("Non-retryable constraint violation in updateOneInviteToken", {
|
|
1756
|
+
operation: 'updateOneInviteToken',
|
|
1757
|
+
model: 'InviteToken',
|
|
1758
|
+
error: String(error),
|
|
1759
|
+
recordId: props.id,
|
|
1760
|
+
constraintName: constraintMatch ? constraintMatch[1] : undefined,
|
|
1761
|
+
errorCategory: 'CONSTRAINT_VIOLATION',
|
|
1762
|
+
isRetryable: false,
|
|
1763
|
+
});
|
|
1764
|
+
throw error;
|
|
1765
|
+
}
|
|
1682
1766
|
// Check if this is a database connection error that we should retry
|
|
1683
|
-
const isConnectionError = ((
|
|
1684
|
-
((
|
|
1685
|
-
((
|
|
1686
|
-
((
|
|
1687
|
-
(error.networkError && ((
|
|
1767
|
+
const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
|
|
1768
|
+
((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
|
|
1769
|
+
((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
|
|
1770
|
+
((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
|
|
1771
|
+
(error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
|
|
1688
1772
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
1689
1773
|
retryCount++;
|
|
1690
1774
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
1691
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
1775
|
+
logger_1.logger.warn("Database connection error in updateOneInviteToken, retrying...", {
|
|
1776
|
+
operation: 'updateOneInviteToken',
|
|
1777
|
+
model: 'InviteToken',
|
|
1778
|
+
attempt: retryCount,
|
|
1779
|
+
maxRetries: MAX_RETRIES,
|
|
1780
|
+
recordId: props.id,
|
|
1781
|
+
});
|
|
1692
1782
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
1693
1783
|
continue;
|
|
1694
1784
|
}
|
|
1695
|
-
// Log
|
|
1696
|
-
logger_1.logger.error("Database
|
|
1785
|
+
// Log structured error details and rethrow
|
|
1786
|
+
logger_1.logger.error("Database update operation failed", {
|
|
1787
|
+
operation: 'updateOneInviteToken',
|
|
1788
|
+
model: 'InviteToken',
|
|
1789
|
+
error: String(error),
|
|
1790
|
+
recordId: props.id,
|
|
1791
|
+
isRetryable: isConnectionError,
|
|
1792
|
+
});
|
|
1697
1793
|
throw error;
|
|
1698
1794
|
}
|
|
1699
1795
|
}
|
|
@@ -1708,7 +1804,7 @@ exports.InviteToken = {
|
|
|
1708
1804
|
* @returns The updated InviteToken or null.
|
|
1709
1805
|
*/
|
|
1710
1806
|
async upsert(props, globalClient) {
|
|
1711
|
-
var _a, _b, _c, _d, _e;
|
|
1807
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
1712
1808
|
// Maximum number of retries for database connection issues
|
|
1713
1809
|
const MAX_RETRIES = 3;
|
|
1714
1810
|
let retryCount = 0;
|
|
@@ -3053,21 +3149,55 @@ exports.InviteToken = {
|
|
|
3053
3149
|
}
|
|
3054
3150
|
catch (error) {
|
|
3055
3151
|
lastError = error;
|
|
3152
|
+
// Check for constraint violations FIRST - these are NEVER retryable
|
|
3153
|
+
const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
|
|
3154
|
+
((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
|
|
3155
|
+
((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
|
|
3156
|
+
((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
|
|
3157
|
+
((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
|
|
3158
|
+
((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
|
|
3159
|
+
((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
|
|
3160
|
+
((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
|
|
3161
|
+
if (isConstraintViolation) {
|
|
3162
|
+
const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
|
|
3163
|
+
logger_1.logger.error("Non-retryable constraint violation in upsertOneInviteToken", {
|
|
3164
|
+
operation: 'upsertOneInviteToken',
|
|
3165
|
+
model: 'InviteToken',
|
|
3166
|
+
error: String(error),
|
|
3167
|
+
recordId: props.id,
|
|
3168
|
+
constraintName: constraintMatch ? constraintMatch[1] : undefined,
|
|
3169
|
+
errorCategory: 'CONSTRAINT_VIOLATION',
|
|
3170
|
+
isRetryable: false,
|
|
3171
|
+
});
|
|
3172
|
+
throw error;
|
|
3173
|
+
}
|
|
3056
3174
|
// Check if this is a database connection error that we should retry
|
|
3057
|
-
const isConnectionError = ((
|
|
3058
|
-
((
|
|
3059
|
-
((
|
|
3060
|
-
((
|
|
3061
|
-
(error.networkError && ((
|
|
3175
|
+
const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
|
|
3176
|
+
((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
|
|
3177
|
+
((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
|
|
3178
|
+
((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
|
|
3179
|
+
(error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
|
|
3062
3180
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
3063
3181
|
retryCount++;
|
|
3064
3182
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
3065
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
3183
|
+
logger_1.logger.warn("Database connection error in upsertOneInviteToken, retrying...", {
|
|
3184
|
+
operation: 'upsertOneInviteToken',
|
|
3185
|
+
model: 'InviteToken',
|
|
3186
|
+
attempt: retryCount,
|
|
3187
|
+
maxRetries: MAX_RETRIES,
|
|
3188
|
+
recordId: props.id,
|
|
3189
|
+
});
|
|
3066
3190
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
3067
3191
|
continue;
|
|
3068
3192
|
}
|
|
3069
|
-
// Log
|
|
3070
|
-
logger_1.logger.error("Database
|
|
3193
|
+
// Log structured error details and rethrow
|
|
3194
|
+
logger_1.logger.error("Database upsert operation failed", {
|
|
3195
|
+
operation: 'upsertOneInviteToken',
|
|
3196
|
+
model: 'InviteToken',
|
|
3197
|
+
error: String(error),
|
|
3198
|
+
recordId: props.id,
|
|
3199
|
+
isRetryable: isConnectionError,
|
|
3200
|
+
});
|
|
3071
3201
|
throw error;
|
|
3072
3202
|
}
|
|
3073
3203
|
}
|
|
@@ -3082,7 +3212,7 @@ exports.InviteToken = {
|
|
|
3082
3212
|
* @returns The count of created records or null.
|
|
3083
3213
|
*/
|
|
3084
3214
|
async updateMany(props, globalClient) {
|
|
3085
|
-
var _a, _b, _c, _d, _e;
|
|
3215
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
3086
3216
|
// Maximum number of retries for database connection issues
|
|
3087
3217
|
const MAX_RETRIES = 3;
|
|
3088
3218
|
let retryCount = 0;
|
|
@@ -4166,21 +4296,52 @@ exports.InviteToken = {
|
|
|
4166
4296
|
}
|
|
4167
4297
|
catch (error) {
|
|
4168
4298
|
lastError = error;
|
|
4299
|
+
// Check for constraint violations FIRST - these are NEVER retryable
|
|
4300
|
+
const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
|
|
4301
|
+
((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
|
|
4302
|
+
((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
|
|
4303
|
+
((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
|
|
4304
|
+
((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
|
|
4305
|
+
((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
|
|
4306
|
+
((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
|
|
4307
|
+
((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
|
|
4308
|
+
if (isConstraintViolation) {
|
|
4309
|
+
const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
|
|
4310
|
+
logger_1.logger.error("Non-retryable constraint violation in updateManyInviteToken", {
|
|
4311
|
+
operation: 'updateManyInviteToken',
|
|
4312
|
+
model: 'InviteToken',
|
|
4313
|
+
error: String(error),
|
|
4314
|
+
constraintName: constraintMatch ? constraintMatch[1] : undefined,
|
|
4315
|
+
errorCategory: 'CONSTRAINT_VIOLATION',
|
|
4316
|
+
isRetryable: false,
|
|
4317
|
+
});
|
|
4318
|
+
throw error;
|
|
4319
|
+
}
|
|
4169
4320
|
// Check if this is a database connection error that we should retry
|
|
4170
|
-
const isConnectionError = ((
|
|
4171
|
-
((
|
|
4172
|
-
((
|
|
4173
|
-
((
|
|
4174
|
-
(error.networkError && ((
|
|
4321
|
+
const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
|
|
4322
|
+
((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
|
|
4323
|
+
((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
|
|
4324
|
+
((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
|
|
4325
|
+
(error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
|
|
4175
4326
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
4176
4327
|
retryCount++;
|
|
4177
4328
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
4178
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
4329
|
+
logger_1.logger.warn("Database connection error in updateManyInviteToken, retrying...", {
|
|
4330
|
+
operation: 'updateManyInviteToken',
|
|
4331
|
+
model: 'InviteToken',
|
|
4332
|
+
attempt: retryCount,
|
|
4333
|
+
maxRetries: MAX_RETRIES,
|
|
4334
|
+
});
|
|
4179
4335
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
4180
4336
|
continue;
|
|
4181
4337
|
}
|
|
4182
|
-
// Log
|
|
4183
|
-
logger_1.logger.error("Database
|
|
4338
|
+
// Log structured error details and rethrow
|
|
4339
|
+
logger_1.logger.error("Database updateMany operation failed", {
|
|
4340
|
+
operation: 'updateManyInviteToken',
|
|
4341
|
+
model: 'InviteToken',
|
|
4342
|
+
error: String(error),
|
|
4343
|
+
isRetryable: isConnectionError,
|
|
4344
|
+
});
|
|
4184
4345
|
throw error;
|
|
4185
4346
|
}
|
|
4186
4347
|
}
|
|
@@ -4195,7 +4356,7 @@ exports.InviteToken = {
|
|
|
4195
4356
|
* @returns The deleted InviteToken or null.
|
|
4196
4357
|
*/
|
|
4197
4358
|
async delete(props, globalClient) {
|
|
4198
|
-
var _a, _b, _c, _d, _e;
|
|
4359
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
4199
4360
|
// Maximum number of retries for database connection issues
|
|
4200
4361
|
const MAX_RETRIES = 3;
|
|
4201
4362
|
let retryCount = 0;
|
|
@@ -4239,21 +4400,58 @@ exports.InviteToken = {
|
|
|
4239
4400
|
}
|
|
4240
4401
|
catch (error) {
|
|
4241
4402
|
lastError = error;
|
|
4403
|
+
// Check for constraint violations FIRST - these are NEVER retryable
|
|
4404
|
+
// (e.g., foreign key constraints preventing deletion)
|
|
4405
|
+
const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
|
|
4406
|
+
((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
|
|
4407
|
+
((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
|
|
4408
|
+
((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
|
|
4409
|
+
((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
|
|
4410
|
+
((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
|
|
4411
|
+
((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('23503')) ||
|
|
4412
|
+
((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2002')) ||
|
|
4413
|
+
((_j = error.message) === null || _j === void 0 ? void 0 : _j.includes('P2003')) ||
|
|
4414
|
+
((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('P2014'));
|
|
4415
|
+
if (isConstraintViolation) {
|
|
4416
|
+
const constraintMatch = (_l = error.message) === null || _l === void 0 ? void 0 : _l.match(/constraint\s+"([^"]+)"/);
|
|
4417
|
+
logger_1.logger.error("Non-retryable constraint violation in deleteOneInviteToken", {
|
|
4418
|
+
operation: 'deleteOneInviteToken',
|
|
4419
|
+
model: 'InviteToken',
|
|
4420
|
+
error: String(error),
|
|
4421
|
+
recordId: props.id,
|
|
4422
|
+
constraintName: constraintMatch ? constraintMatch[1] : undefined,
|
|
4423
|
+
errorCategory: 'CONSTRAINT_VIOLATION',
|
|
4424
|
+
isRetryable: false,
|
|
4425
|
+
});
|
|
4426
|
+
throw error;
|
|
4427
|
+
}
|
|
4242
4428
|
// Check if this is a database connection error that we should retry
|
|
4243
|
-
const isConnectionError = ((
|
|
4244
|
-
((
|
|
4245
|
-
((
|
|
4246
|
-
((
|
|
4247
|
-
(error.networkError && ((
|
|
4429
|
+
const isConnectionError = ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Server has closed the connection')) ||
|
|
4430
|
+
((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Cannot reach database server')) ||
|
|
4431
|
+
((_p = error.message) === null || _p === void 0 ? void 0 : _p.includes('Connection timed out')) ||
|
|
4432
|
+
((_q = error.message) === null || _q === void 0 ? void 0 : _q.includes('Accelerate')) || // Prisma Accelerate proxy errors
|
|
4433
|
+
(error.networkError && ((_r = error.networkError.message) === null || _r === void 0 ? void 0 : _r.includes('Failed to fetch')));
|
|
4248
4434
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
4249
4435
|
retryCount++;
|
|
4250
4436
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
4251
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
4437
|
+
logger_1.logger.warn("Database connection error in deleteOneInviteToken, retrying...", {
|
|
4438
|
+
operation: 'deleteOneInviteToken',
|
|
4439
|
+
model: 'InviteToken',
|
|
4440
|
+
attempt: retryCount,
|
|
4441
|
+
maxRetries: MAX_RETRIES,
|
|
4442
|
+
recordId: props.id,
|
|
4443
|
+
});
|
|
4252
4444
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
4253
4445
|
continue;
|
|
4254
4446
|
}
|
|
4255
|
-
// Log
|
|
4256
|
-
logger_1.logger.error("Database
|
|
4447
|
+
// Log structured error details and rethrow
|
|
4448
|
+
logger_1.logger.error("Database delete operation failed", {
|
|
4449
|
+
operation: 'deleteOneInviteToken',
|
|
4450
|
+
model: 'InviteToken',
|
|
4451
|
+
error: String(error),
|
|
4452
|
+
recordId: props.id,
|
|
4453
|
+
isRetryable: isConnectionError,
|
|
4454
|
+
});
|
|
4257
4455
|
throw error;
|
|
4258
4456
|
}
|
|
4259
4457
|
}
|
|
@@ -4324,12 +4522,22 @@ exports.InviteToken = {
|
|
|
4324
4522
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
4325
4523
|
retryCount++;
|
|
4326
4524
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
4327
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
4525
|
+
logger_1.logger.warn("Database connection error in getInviteToken, retrying...", {
|
|
4526
|
+
operation: 'getInviteToken',
|
|
4527
|
+
model: 'InviteToken',
|
|
4528
|
+
attempt: retryCount,
|
|
4529
|
+
maxRetries: MAX_RETRIES,
|
|
4530
|
+
});
|
|
4328
4531
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
4329
4532
|
continue;
|
|
4330
4533
|
}
|
|
4331
|
-
// Log
|
|
4332
|
-
logger_1.logger.error("Database
|
|
4534
|
+
// Log structured error details and rethrow
|
|
4535
|
+
logger_1.logger.error("Database get operation failed", {
|
|
4536
|
+
operation: 'getInviteToken',
|
|
4537
|
+
model: 'InviteToken',
|
|
4538
|
+
error: String(error),
|
|
4539
|
+
isRetryable: isConnectionError,
|
|
4540
|
+
});
|
|
4333
4541
|
throw error;
|
|
4334
4542
|
}
|
|
4335
4543
|
}
|
|
@@ -4387,12 +4595,22 @@ exports.InviteToken = {
|
|
|
4387
4595
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
4388
4596
|
retryCount++;
|
|
4389
4597
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
4390
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
4598
|
+
logger_1.logger.warn("Database connection error in getAllInviteToken, retrying...", {
|
|
4599
|
+
operation: 'getAllInviteToken',
|
|
4600
|
+
model: 'InviteToken',
|
|
4601
|
+
attempt: retryCount,
|
|
4602
|
+
maxRetries: MAX_RETRIES,
|
|
4603
|
+
});
|
|
4391
4604
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
4392
4605
|
continue;
|
|
4393
4606
|
}
|
|
4394
|
-
// Log
|
|
4395
|
-
logger_1.logger.error("Database
|
|
4607
|
+
// Log structured error details and rethrow
|
|
4608
|
+
logger_1.logger.error("Database getAll operation failed", {
|
|
4609
|
+
operation: 'getAllInviteToken',
|
|
4610
|
+
model: 'InviteToken',
|
|
4611
|
+
error: String(error),
|
|
4612
|
+
isRetryable: isConnectionError,
|
|
4613
|
+
});
|
|
4396
4614
|
throw error;
|
|
4397
4615
|
}
|
|
4398
4616
|
}
|
|
@@ -4469,12 +4687,22 @@ exports.InviteToken = {
|
|
|
4469
4687
|
if (isConnectionError && retryCount < MAX_RETRIES - 1) {
|
|
4470
4688
|
retryCount++;
|
|
4471
4689
|
const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
|
|
4472
|
-
logger_1.logger.warn("Database connection error, retrying..."
|
|
4690
|
+
logger_1.logger.warn("Database connection error in findManyInviteToken, retrying...", {
|
|
4691
|
+
operation: 'findManyInviteToken',
|
|
4692
|
+
model: 'InviteToken',
|
|
4693
|
+
attempt: retryCount,
|
|
4694
|
+
maxRetries: MAX_RETRIES,
|
|
4695
|
+
});
|
|
4473
4696
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
4474
4697
|
continue;
|
|
4475
4698
|
}
|
|
4476
|
-
// Log
|
|
4477
|
-
logger_1.logger.error("Database
|
|
4699
|
+
// Log structured error details and rethrow
|
|
4700
|
+
logger_1.logger.error("Database findMany operation failed", {
|
|
4701
|
+
operation: 'findManyInviteToken',
|
|
4702
|
+
model: 'InviteToken',
|
|
4703
|
+
error: String(error),
|
|
4704
|
+
isRetryable: isConnectionError,
|
|
4705
|
+
});
|
|
4478
4706
|
throw error;
|
|
4479
4707
|
}
|
|
4480
4708
|
}
|