@fluidframework/container-runtime 2.0.0-dev-rc.5.0.0.263932 → 2.0.0-dev-rc.5.0.0.265721

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.
Files changed (266) hide show
  1. package/api-report/container-runtime.api.md +31 -40
  2. package/dist/batchTracker.js.map +1 -1
  3. package/dist/blobManager.d.ts +2 -2
  4. package/dist/blobManager.d.ts.map +1 -1
  5. package/dist/blobManager.js +1 -1
  6. package/dist/blobManager.js.map +1 -1
  7. package/dist/channelCollection.d.ts +2 -2
  8. package/dist/channelCollection.d.ts.map +1 -1
  9. package/dist/channelCollection.js +3 -3
  10. package/dist/channelCollection.js.map +1 -1
  11. package/dist/connectionTelemetry.js.map +1 -1
  12. package/dist/containerHandleContext.d.ts +2 -1
  13. package/dist/containerHandleContext.d.ts.map +1 -1
  14. package/dist/containerHandleContext.js.map +1 -1
  15. package/dist/containerRuntime.d.ts +10 -17
  16. package/dist/containerRuntime.d.ts.map +1 -1
  17. package/dist/containerRuntime.js +62 -104
  18. package/dist/containerRuntime.js.map +1 -1
  19. package/dist/dataStore.d.ts.map +1 -1
  20. package/dist/dataStore.js.map +1 -1
  21. package/dist/dataStoreContext.d.ts +6 -6
  22. package/dist/dataStoreContext.d.ts.map +1 -1
  23. package/dist/dataStoreContext.js +3 -3
  24. package/dist/dataStoreContext.js.map +1 -1
  25. package/dist/dataStoreContexts.js.map +1 -1
  26. package/dist/dataStoreRegistry.js.map +1 -1
  27. package/dist/deltaManagerProxies.js.map +1 -1
  28. package/dist/deltaScheduler.js.map +1 -1
  29. package/dist/gc/garbageCollection.d.ts +1 -2
  30. package/dist/gc/garbageCollection.d.ts.map +1 -1
  31. package/dist/gc/garbageCollection.js +1 -1
  32. package/dist/gc/garbageCollection.js.map +1 -1
  33. package/dist/gc/gcConfigs.d.ts.map +1 -1
  34. package/dist/gc/gcConfigs.js +14 -19
  35. package/dist/gc/gcConfigs.js.map +1 -1
  36. package/dist/gc/gcDefinitions.d.ts +4 -22
  37. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  38. package/dist/gc/gcDefinitions.js +3 -3
  39. package/dist/gc/gcDefinitions.js.map +1 -1
  40. package/dist/gc/gcHelpers.d.ts +1 -2
  41. package/dist/gc/gcHelpers.d.ts.map +1 -1
  42. package/dist/gc/gcHelpers.js.map +1 -1
  43. package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  44. package/dist/gc/gcSummaryDefinitions.d.ts +1 -1
  45. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
  46. package/dist/gc/gcSummaryDefinitions.js.map +1 -1
  47. package/dist/gc/gcSummaryStateTracker.d.ts +1 -1
  48. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  49. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  50. package/dist/gc/gcTelemetry.d.ts +1 -1
  51. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  52. package/dist/gc/gcTelemetry.js +2 -2
  53. package/dist/gc/gcTelemetry.js.map +1 -1
  54. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  55. package/dist/gc/index.d.ts +1 -1
  56. package/dist/gc/index.d.ts.map +1 -1
  57. package/dist/gc/index.js +2 -2
  58. package/dist/gc/index.js.map +1 -1
  59. package/dist/index.d.ts +1 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/legacy.d.ts +1 -1
  63. package/dist/opLifecycle/batchManager.js.map +1 -1
  64. package/dist/opLifecycle/opCompressor.js.map +1 -1
  65. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  66. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  67. package/dist/opLifecycle/opSplitter.js.map +1 -1
  68. package/dist/opLifecycle/outbox.d.ts +1 -0
  69. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  70. package/dist/opLifecycle/outbox.js +2 -16
  71. package/dist/opLifecycle/outbox.js.map +1 -1
  72. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  73. package/dist/packageVersion.d.ts +1 -1
  74. package/dist/packageVersion.js +1 -1
  75. package/dist/packageVersion.js.map +1 -1
  76. package/dist/pendingStateManager.js.map +1 -1
  77. package/dist/scheduleManager.js.map +1 -1
  78. package/dist/storageServiceWithAttachBlobs.js.map +1 -1
  79. package/dist/summary/documentSchema.js +1 -1
  80. package/dist/summary/documentSchema.js.map +1 -1
  81. package/dist/summary/index.d.ts +1 -1
  82. package/dist/summary/index.d.ts.map +1 -1
  83. package/dist/summary/index.js.map +1 -1
  84. package/dist/summary/orderedClientElection.d.ts +3 -1
  85. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  86. package/dist/summary/orderedClientElection.js +35 -13
  87. package/dist/summary/orderedClientElection.js.map +1 -1
  88. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  89. package/dist/summary/runningSummarizer.d.ts +0 -5
  90. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  91. package/dist/summary/runningSummarizer.js +19 -104
  92. package/dist/summary/runningSummarizer.js.map +1 -1
  93. package/dist/summary/summarizer.d.ts +1 -1
  94. package/dist/summary/summarizer.d.ts.map +1 -1
  95. package/dist/summary/summarizer.js +4 -1
  96. package/dist/summary/summarizer.js.map +1 -1
  97. package/dist/summary/summarizerClientElection.js.map +1 -1
  98. package/dist/summary/summarizerHeuristics.js.map +1 -1
  99. package/dist/summary/summarizerNode/summarizerNode.d.ts +1 -2
  100. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  101. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  102. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  103. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -2
  104. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  105. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  106. package/dist/summary/summarizerTypes.d.ts +15 -26
  107. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  108. package/dist/summary/summarizerTypes.js.map +1 -1
  109. package/dist/summary/summaryCollection.js +2 -2
  110. package/dist/summary/summaryCollection.js.map +1 -1
  111. package/dist/summary/summaryFormat.d.ts +1 -1
  112. package/dist/summary/summaryFormat.d.ts.map +1 -1
  113. package/dist/summary/summaryFormat.js.map +1 -1
  114. package/dist/summary/summaryGenerator.d.ts +7 -8
  115. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  116. package/dist/summary/summaryGenerator.js +23 -18
  117. package/dist/summary/summaryGenerator.js.map +1 -1
  118. package/dist/summary/summaryManager.js.map +1 -1
  119. package/dist/throttler.js.map +1 -1
  120. package/lib/batchTracker.js.map +1 -1
  121. package/lib/blobManager.d.ts +2 -2
  122. package/lib/blobManager.d.ts.map +1 -1
  123. package/lib/blobManager.js +1 -1
  124. package/lib/blobManager.js.map +1 -1
  125. package/lib/channelCollection.d.ts +2 -2
  126. package/lib/channelCollection.d.ts.map +1 -1
  127. package/lib/channelCollection.js +3 -3
  128. package/lib/channelCollection.js.map +1 -1
  129. package/lib/connectionTelemetry.js.map +1 -1
  130. package/lib/containerHandleContext.d.ts +2 -1
  131. package/lib/containerHandleContext.d.ts.map +1 -1
  132. package/lib/containerHandleContext.js.map +1 -1
  133. package/lib/containerRuntime.d.ts +10 -17
  134. package/lib/containerRuntime.d.ts.map +1 -1
  135. package/lib/containerRuntime.js +62 -104
  136. package/lib/containerRuntime.js.map +1 -1
  137. package/lib/dataStore.d.ts.map +1 -1
  138. package/lib/dataStore.js.map +1 -1
  139. package/lib/dataStoreContext.d.ts +6 -6
  140. package/lib/dataStoreContext.d.ts.map +1 -1
  141. package/lib/dataStoreContext.js +3 -3
  142. package/lib/dataStoreContext.js.map +1 -1
  143. package/lib/dataStoreContexts.js.map +1 -1
  144. package/lib/dataStoreRegistry.js.map +1 -1
  145. package/lib/deltaManagerProxies.js.map +1 -1
  146. package/lib/deltaScheduler.js.map +1 -1
  147. package/lib/gc/garbageCollection.d.ts +1 -2
  148. package/lib/gc/garbageCollection.d.ts.map +1 -1
  149. package/lib/gc/garbageCollection.js +1 -1
  150. package/lib/gc/garbageCollection.js.map +1 -1
  151. package/lib/gc/gcConfigs.d.ts.map +1 -1
  152. package/lib/gc/gcConfigs.js +15 -20
  153. package/lib/gc/gcConfigs.js.map +1 -1
  154. package/lib/gc/gcDefinitions.d.ts +4 -22
  155. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  156. package/lib/gc/gcDefinitions.js +2 -2
  157. package/lib/gc/gcDefinitions.js.map +1 -1
  158. package/lib/gc/gcHelpers.d.ts +1 -2
  159. package/lib/gc/gcHelpers.d.ts.map +1 -1
  160. package/lib/gc/gcHelpers.js.map +1 -1
  161. package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
  162. package/lib/gc/gcSummaryDefinitions.d.ts +1 -1
  163. package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
  164. package/lib/gc/gcSummaryDefinitions.js.map +1 -1
  165. package/lib/gc/gcSummaryStateTracker.d.ts +1 -1
  166. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  167. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  168. package/lib/gc/gcTelemetry.d.ts +1 -1
  169. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  170. package/lib/gc/gcTelemetry.js +2 -2
  171. package/lib/gc/gcTelemetry.js.map +1 -1
  172. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  173. package/lib/gc/index.d.ts +1 -1
  174. package/lib/gc/index.d.ts.map +1 -1
  175. package/lib/gc/index.js +1 -1
  176. package/lib/gc/index.js.map +1 -1
  177. package/lib/index.d.ts +1 -1
  178. package/lib/index.d.ts.map +1 -1
  179. package/lib/index.js.map +1 -1
  180. package/lib/legacy.d.ts +1 -1
  181. package/lib/opLifecycle/batchManager.js.map +1 -1
  182. package/lib/opLifecycle/opCompressor.js.map +1 -1
  183. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  184. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  185. package/lib/opLifecycle/opSplitter.js.map +1 -1
  186. package/lib/opLifecycle/outbox.d.ts +1 -0
  187. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  188. package/lib/opLifecycle/outbox.js +2 -16
  189. package/lib/opLifecycle/outbox.js.map +1 -1
  190. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  191. package/lib/packageVersion.d.ts +1 -1
  192. package/lib/packageVersion.js +1 -1
  193. package/lib/packageVersion.js.map +1 -1
  194. package/lib/pendingStateManager.js.map +1 -1
  195. package/lib/scheduleManager.js.map +1 -1
  196. package/lib/storageServiceWithAttachBlobs.js.map +1 -1
  197. package/lib/summary/documentSchema.js +1 -1
  198. package/lib/summary/documentSchema.js.map +1 -1
  199. package/lib/summary/index.d.ts +1 -1
  200. package/lib/summary/index.d.ts.map +1 -1
  201. package/lib/summary/index.js.map +1 -1
  202. package/lib/summary/orderedClientElection.d.ts +3 -1
  203. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  204. package/lib/summary/orderedClientElection.js +35 -13
  205. package/lib/summary/orderedClientElection.js.map +1 -1
  206. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  207. package/lib/summary/runningSummarizer.d.ts +0 -5
  208. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  209. package/lib/summary/runningSummarizer.js +20 -105
  210. package/lib/summary/runningSummarizer.js.map +1 -1
  211. package/lib/summary/summarizer.d.ts +1 -1
  212. package/lib/summary/summarizer.d.ts.map +1 -1
  213. package/lib/summary/summarizer.js +4 -1
  214. package/lib/summary/summarizer.js.map +1 -1
  215. package/lib/summary/summarizerClientElection.js.map +1 -1
  216. package/lib/summary/summarizerHeuristics.js.map +1 -1
  217. package/lib/summary/summarizerNode/summarizerNode.d.ts +1 -2
  218. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  219. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  220. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  221. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -2
  222. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  223. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  224. package/lib/summary/summarizerTypes.d.ts +15 -26
  225. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  226. package/lib/summary/summarizerTypes.js.map +1 -1
  227. package/lib/summary/summaryCollection.js +2 -2
  228. package/lib/summary/summaryCollection.js.map +1 -1
  229. package/lib/summary/summaryFormat.d.ts +1 -1
  230. package/lib/summary/summaryFormat.d.ts.map +1 -1
  231. package/lib/summary/summaryFormat.js +1 -1
  232. package/lib/summary/summaryFormat.js.map +1 -1
  233. package/lib/summary/summaryGenerator.d.ts +7 -8
  234. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  235. package/lib/summary/summaryGenerator.js +23 -18
  236. package/lib/summary/summaryGenerator.js.map +1 -1
  237. package/lib/summary/summaryManager.js.map +1 -1
  238. package/lib/throttler.js.map +1 -1
  239. package/package.json +59 -22
  240. package/src/blobManager.ts +3 -3
  241. package/src/channelCollection.ts +5 -7
  242. package/src/containerHandleContext.ts +2 -1
  243. package/src/containerRuntime.ts +72 -121
  244. package/src/dataStore.ts +2 -1
  245. package/src/dataStoreContext.ts +7 -8
  246. package/src/gc/garbageCollection.md +0 -8
  247. package/src/gc/garbageCollection.ts +2 -1
  248. package/src/gc/gcConfigs.ts +12 -19
  249. package/src/gc/gcDefinitions.ts +5 -23
  250. package/src/gc/gcHelpers.ts +1 -1
  251. package/src/gc/gcSummaryDefinitions.ts +1 -1
  252. package/src/gc/gcSummaryStateTracker.ts +1 -1
  253. package/src/gc/gcTelemetry.ts +1 -1
  254. package/src/gc/index.ts +1 -1
  255. package/src/index.ts +1 -1
  256. package/src/opLifecycle/outbox.ts +2 -26
  257. package/src/packageVersion.ts +1 -1
  258. package/src/summary/index.ts +1 -1
  259. package/src/summary/orderedClientElection.ts +82 -11
  260. package/src/summary/runningSummarizer.ts +29 -113
  261. package/src/summary/summarizer.ts +5 -2
  262. package/src/summary/summarizerNode/summarizerNode.ts +0 -2
  263. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +1 -3
  264. package/src/summary/summarizerTypes.ts +21 -27
  265. package/src/summary/summaryFormat.ts +5 -2
  266. package/src/summary/summaryGenerator.ts +49 -26
@@ -35,6 +35,7 @@ import {
35
35
  SubmitSummaryResult,
36
36
  SummarizeResultPart,
37
37
  SummaryGeneratorTelemetry,
38
+ type IRetriableFailureError,
38
39
  } from "./summarizerTypes.js";
39
40
  import { IClientSummaryWatcher } from "./summaryCollection.js";
40
41
 
@@ -127,8 +128,10 @@ const summarizeErrors = {
127
128
  disconnect: "Summary cancelled due to summarizer or main client disconnect",
128
129
  } as const;
129
130
 
131
+ export type SummarizeErrorCode = keyof typeof summarizeErrors;
132
+
130
133
  // Helper functions to report failures and return.
131
- export const getFailMessage = (errorCode: keyof typeof summarizeErrors) =>
134
+ export const getFailMessage = (errorCode: SummarizeErrorCode) =>
132
135
  `${errorCode}: ${summarizeErrors[errorCode]}`;
133
136
 
134
137
  export class SummarizeResultBuilder {
@@ -150,7 +153,7 @@ export class SummarizeResultBuilder {
150
153
  */
151
154
  public fail(
152
155
  message: string,
153
- error: any,
156
+ error: IRetriableFailureError,
154
157
  submitFailureResult?: SubmitSummaryFailureData,
155
158
  nackSummaryResult?: INackSummaryResult,
156
159
  ) {
@@ -184,8 +187,7 @@ export class SummarizeResultBuilder {
184
187
  /**
185
188
  * Errors type for errors hit during summary that may be retriable.
186
189
  */
187
- export class RetriableSummaryError extends LoggingError {
188
- public readonly canRetry = this.retryAfterSeconds !== undefined;
190
+ export class RetriableSummaryError extends LoggingError implements IRetriableFailureError {
189
191
  constructor(
190
192
  message: string,
191
193
  public readonly retryAfterSeconds?: number,
@@ -221,9 +223,8 @@ export class SummaryGenerator {
221
223
  /**
222
224
  * Generates summary and listens for broadcast and ack/nack.
223
225
  * Returns true for ack, false for nack, and undefined for failure or timeout.
224
- * @param reason - reason for summarizing
225
- * @param options - refreshLatestAck to fetch summary ack info from server,
226
- * fullTree to generate tree without any summary handles even if unchanged
226
+ * @param summaryOptions - options controlling how the summary is generated or submitted.
227
+ * @param resultsBuilder - optional, result builder to use to build pass or fail result.
227
228
  */
228
229
  public summarize(
229
230
  summaryOptions: ISubmitSummaryOptions,
@@ -273,8 +274,8 @@ export class SummaryGenerator {
273
274
  * be provided. For op broadcast failures, only errors / properties should be provided.
274
275
  */
275
276
  const fail = (
276
- errorCode: keyof typeof summarizeErrors,
277
- error?: Error,
277
+ errorCode: SummarizeErrorCode,
278
+ error: IRetriableFailureError,
278
279
  properties?: SummaryGeneratorTelemetry,
279
280
  submitFailureResult?: SubmitSummaryFailureData,
280
281
  nackSummaryResult?: INackSummaryResult,
@@ -294,11 +295,9 @@ export class SummaryGenerator {
294
295
  ...properties,
295
296
  reason,
296
297
  category,
297
- retryAfterSeconds:
298
- submitFailureResult?.retryAfterSeconds ??
299
- nackSummaryResult?.retryAfterSeconds,
298
+ retryAfterSeconds: error.retryAfterSeconds,
300
299
  },
301
- error ?? reason,
300
+ error,
302
301
  ); // disconnect & summaryAckTimeout do not have proper error.
303
302
 
304
303
  resultsBuilder.fail(reason, error, submitFailureResult, nackSummaryResult);
@@ -330,9 +329,11 @@ export class SummaryGenerator {
330
329
  );
331
330
 
332
331
  if (summaryData.stage !== "submit") {
333
- return fail("submitSummaryFailure", summaryData.error, summarizeTelemetryProps, {
332
+ const errorCode: SummarizeErrorCode = "submitSummaryFailure";
333
+ const retriableError =
334
+ summaryData.error ?? new RetriableSummaryError(getFailMessage(errorCode));
335
+ return fail(errorCode, retriableError, summarizeTelemetryProps, {
334
336
  stage: summaryData.stage,
335
- retryAfterSeconds: getRetryDelaySecondsFromError(summaryData.error),
336
337
  });
337
338
  }
338
339
 
@@ -368,11 +369,14 @@ export class SummaryGenerator {
368
369
  } catch (error) {
369
370
  return fail(
370
371
  "submitSummaryFailure",
371
- wrapError(error, (message) => new LoggingError(message)),
372
+ wrapError(
373
+ error,
374
+ (message) =>
375
+ new RetriableSummaryError(message, getRetryDelaySecondsFromError(error)),
376
+ ),
372
377
  undefined /* properties */,
373
378
  {
374
379
  stage: "unknown",
375
- retryAfterSeconds: getRetryDelaySecondsFromError(error),
376
380
  },
377
381
  );
378
382
  } finally {
@@ -393,10 +397,17 @@ export class SummaryGenerator {
393
397
  cancellationToken,
394
398
  );
395
399
  if (waitBroadcastResult.result === "cancelled") {
396
- return fail("disconnect");
400
+ const errorCode: SummarizeErrorCode = "disconnect";
401
+ return fail(errorCode, new RetriableSummaryError(getFailMessage(errorCode)));
397
402
  }
398
403
  if (waitBroadcastResult.result !== "done") {
399
- return fail("summaryOpWaitTimeout");
404
+ // The summary op may not have been received within the timeout due to a transient error. So,
405
+ // fail with a retriable error to re-attempt the summary if possible.
406
+ const errorCode: SummarizeErrorCode = "summaryOpWaitTimeout";
407
+ return fail(
408
+ errorCode,
409
+ new RetriableSummaryError(getFailMessage(errorCode), 0 /* retryAfterSeconds */),
410
+ );
400
411
  }
401
412
  const summarizeOp = waitBroadcastResult.value;
402
413
 
@@ -422,10 +433,17 @@ export class SummaryGenerator {
422
433
  cancellationToken,
423
434
  );
424
435
  if (waitAckNackResult.result === "cancelled") {
425
- return fail("disconnect");
436
+ const errorCode: SummarizeErrorCode = "disconnect";
437
+ return fail(errorCode, new RetriableSummaryError(getFailMessage(errorCode)));
426
438
  }
427
439
  if (waitAckNackResult.result !== "done") {
428
- return fail("summaryAckWaitTimeout");
440
+ const errorCode: SummarizeErrorCode = "summaryAckWaitTimeout";
441
+ // The summary ack may not have been received within the timeout due to a transient error. So,
442
+ // fail with a retriable error to re-attempt the summary if possible.
443
+ return fail(
444
+ errorCode,
445
+ new RetriableSummaryError(getFailMessage(errorCode), 0 /* retryAfterSeconds */),
446
+ );
429
447
  }
430
448
  const ackNackOp = waitAckNackResult.value;
431
449
  this.pendingAckTimer.clear();
@@ -469,11 +487,16 @@ export class SummaryGenerator {
469
487
  const errorMessage = summaryNack?.message;
470
488
  const retryAfterSeconds = summaryNack?.retryAfter;
471
489
 
490
+ const errorCode: SummarizeErrorCode = "summaryNack";
491
+
472
492
  // pre-0.58 error message prefix: summaryNack
473
- const error = new LoggingError(`Received summaryNack`, {
493
+ const error = new RetriableSummaryError(
494
+ getFailMessage(errorCode),
474
495
  retryAfterSeconds,
475
- errorMessage,
476
- });
496
+ {
497
+ errorMessage,
498
+ },
499
+ );
477
500
 
478
501
  assert(
479
502
  getRetryDelaySecondsFromError(error) === retryAfterSeconds,
@@ -481,11 +504,11 @@ export class SummaryGenerator {
481
504
  );
482
505
  // This will only set resultsBuilder.receivedSummaryAckOrNack, as other promises are already set.
483
506
  return fail(
484
- "summaryNack",
507
+ errorCode,
485
508
  error,
486
509
  { ...summarizeTelemetryProps, nackRetryAfter: retryAfterSeconds },
487
510
  undefined /* submitFailureResult */,
488
- { summaryNackOp: ackNackOp, ackNackDuration, retryAfterSeconds },
511
+ { summaryNackOp: ackNackOp, ackNackDuration },
489
512
  );
490
513
  }
491
514
  } finally {