Skip to content

Conversation

cherylEnkidu
Copy link
Contributor

@cherylEnkidu cherylEnkidu commented Jul 21, 2025

Discussion
This pull request resolves a bug where a Firestore transaction would hang indefinitely if an error without a message property was thrown within the transaction's body.

The root cause of this issue was an incorrect assumption in the SDK that an error object would always contain a message. This change corrects the logic to ensure that the SDK can gracefully handle errors that lack a message.

Fixes #9147

Testing
Verify in integration test

@cherylEnkidu cherylEnkidu requested review from a team as code owners July 21, 2025 18:59
Copy link

changeset-bot bot commented Jul 21, 2025

🦋 Changeset detected

Latest commit: 56ca0e1

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@firebase/firestore Patch
firebase Patch
@firebase/firestore-compat Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 21, 2025

Size Report 1

Affected Products

  • @firebase/ai

    TypeBase (56fbe52)Merge (75f6f28)Diff
    browser39.4 kB45.8 kB+6.47 kB (+16.4%)
    main42.4 kB48.9 kB+6.54 kB (+15.4%)
    module39.4 kB45.8 kB+6.47 kB (+16.4%)
  • @firebase/app-check

    TypeBase (56fbe52)Merge (75f6f28)Diff
    browser26.3 kB26.4 kB+28 B (+0.1%)
    main27.3 kB27.3 kB+28 B (+0.1%)
    module26.3 kB26.4 kB+28 B (+0.1%)
  • @firebase/firestore

    TypeBase (56fbe52)Merge (75f6f28)Diff
    browser391 kB391 kB+1 B (+0.0%)
    main611 kB611 kB+1 B (+0.0%)
    module391 kB391 kB+1 B (+0.0%)
    react-native392 kB392 kB+1 B (+0.0%)
  • @firebase/firestore-lite

    TypeBase (56fbe52)Merge (75f6f28)Diff
    browser115 kB115 kB+1 B (+0.0%)
    main158 kB158 kB+1 B (+0.0%)
    module115 kB115 kB+1 B (+0.0%)
    react-native116 kB116 kB+1 B (+0.0%)
  • @firebase/functions

    TypeBase (56fbe52)Merge (75f6f28)Diff
    browser13.9 kB14.2 kB+297 B (+2.1%)
    main14.4 kB14.7 kB+302 B (+2.1%)
    module13.9 kB14.2 kB+297 B (+2.1%)
  • @firebase/performance

    TypeBase (56fbe52)Merge (75f6f28)Diff
    browser31.1 kB31.2 kB+169 B (+0.5%)
    main31.5 kB31.7 kB+169 B (+0.5%)
    module31.1 kB31.2 kB+169 B (+0.5%)
  • bundle

    TypeBase (56fbe52)Merge (75f6f28)Diff
    app-check (CustomProvider)37.2 kB37.2 kB+10 B (+0.0%)
    app-check (ReCaptchaEnterpriseProvider)39.6 kB39.6 kB+10 B (+0.0%)
    app-check (ReCaptchaV3Provider)39.5 kB39.6 kB+10 B (+0.0%)
    firestore (Transaction)224 kB224 kB+1 B (+0.0%)
    firestore-lite (Transaction)107 kB107 kB+1 B (+0.0%)
    functions (call)38.6 kB38.7 kB+132 B (+0.3%)
    performance (trace)62.0 kB62.1 kB+96 B (+0.2%)
  • firebase

    12 size changes

    TypeBase (56fbe52)Merge (75f6f28)Diff
    firebase-ai.js31.1 kB35.8 kB+4.70 kB (+15.1%)
    firebase-app-check-compat.js22.8 kB22.8 kB+6 B (+0.0%)
    firebase-app-check.js25.0 kB25.0 kB+10 B (+0.0%)
    firebase-compat.js800 kB800 kB+227 B (+0.0%)
    firebase-firestore-compat.js349 kB349 kB+1 B (+0.0%)
    firebase-firestore-lite.js138 kB138 kB+1 B (+0.0%)
    firebase-firestore.js455 kB455 kB+1 B (+0.0%)
    firebase-functions-compat.js14.7 kB14.8 kB+126 B (+0.9%)
    firebase-functions.js19.4 kB19.5 kB+182 B (+0.9%)
    firebase-performance-compat.js40.2 kB40.3 kB+90 B (+0.2%)
    firebase-performance-standalone-compat.js105 kB105 kB+90 B (+0.1%)
    firebase-performance.js45.5 kB45.6 kB+90 B (+0.2%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/cygTr940YB.html

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 21, 2025

Size Analysis Report 1

Affected Products

  • @firebase/ai

    • AIError

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • AIErrorCode

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • AIModel

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size3.94 kB4.09 kB+154 B (+3.9%)
      size-with-ext-deps21.5 kB21.7 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • AnyOfSchema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.87 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • ArraySchema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.87 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • Backend

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • BackendType

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • BlockReason

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.50 kB2.66 kB+154 B (+6.2%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      BlockReason
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      BlockReason
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • BooleanSchema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • ChatSession

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size16.9 kB17.4 kB+449 B (+2.7%)
      size-with-ext-deps34.6 kB35.1 kB+448 B (+1.3%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      functions

      28 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatNewContent
      generateContent
      generateContentStream
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      30 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatNewContent
      generateContent
      generateContentOnCloud
      generateContentStream
      generateContentStreamOnCloud
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      + generateContentOnCloud
      + generateContentStreamOnCloud

      variables

      22 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      23 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      + Availability

    • FinishReason

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.65 kB2.80 kB+154 B (+5.8%)
      size-with-ext-deps20.2 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      FinishReason
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      FinishReason
      Task
      name
      version

      + Availability

    • FunctionCallingMode

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.45 kB2.61 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      FunctionCallingMode
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      FunctionCallingMode
      Task
      name
      version

      + Availability

    • GenerativeModel

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size20.3 kB20.9 kB+664 B (+3.3%)
      size-with-ext-deps38.0 kB38.7 kB+663 B (+1.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      functions

      32 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentStream
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      35 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      countTokensOnCloud
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentOnCloud
      generateContentStream
      generateContentStreamOnCloud
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      + countTokensOnCloud
      + generateContentOnCloud
      + generateContentStreamOnCloud

      variables

      22 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      23 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      + Availability

    • GoogleAIBackend

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.40 kB2.56 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • HarmBlockMethod

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.46 kB2.61 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmBlockMethod
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmBlockMethod
      Task
      name
      version

      + Availability

    • HarmBlockThreshold

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.58 kB2.73 kB+154 B (+6.0%)
      size-with-ext-deps20.1 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmBlockThreshold
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmBlockThreshold
      Task
      name
      version

      + Availability

    • HarmCategory

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.65 kB2.80 kB+154 B (+5.8%)
      size-with-ext-deps20.2 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmCategory
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmCategory
      Task
      name
      version

      + Availability

    • HarmProbability

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.48 kB2.63 kB+154 B (+6.2%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmProbability
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmProbability
      Task
      name
      version

      + Availability

    • HarmSeverity

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.64 kB2.79 kB+154 B (+5.8%)
      size-with-ext-deps20.2 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmSeverity
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmSeverity
      Task
      name
      version

      + Availability

    • ImagenAspectRatio

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.51 kB2.67 kB+154 B (+6.1%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ImagenAspectRatio
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ImagenAspectRatio
      Task
      name
      version

      + Availability

    • ImagenImageFormat

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.69 kB2.84 kB+154 B (+5.7%)
      size-with-ext-deps20.2 kB20.4 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      logger
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      logger
      name
      version

      + Availability

    • ImagenModel

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size8.84 kB8.99 kB+154 B (+1.7%)
      size-with-ext-deps26.5 kB26.6 kB+157 B (+0.6%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      13 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      14 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      + Availability

    • ImagenPersonFilterLevel

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.49 kB2.65 kB+154 B (+6.2%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ImagenPersonFilterLevel
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ImagenPersonFilterLevel
      Task
      name
      version

      + Availability

    • ImagenSafetyFilterLevel

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.57 kB2.72 kB+154 B (+6.0%)
      size-with-ext-deps20.1 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ImagenSafetyFilterLevel
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ImagenSafetyFilterLevel
      Task
      name
      version

      + Availability

    • InferenceMode

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size?2.66 kB? (?)
      size-with-ext-deps?20.2 kB? (?)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      functions?

      decodeInstanceIdentifier
      registerAI

      ?
      classes?

      AIError
      AIService
      Backend
      GoogleAIBackend
      VertexAIBackend

      ?
      variables?

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      InferenceMode
      Task
      name
      version

      ?
      enums??

      External Dependency

      ModuleBase (56fbe52)Merge (75f6f28)Diff
      @firebase/app?

      _registerComponent
      registerVersion

      ?
      @firebase/component?

      Component

      ?
      @firebase/logger?

      Logger

      ?
      @firebase/util?

      FirebaseError

      ?
    • IntegerSchema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • Modality

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.53 kB2.68 kB+154 B (+6.1%)
      size-with-ext-deps20.1 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Modality
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Modality
      Task
      name
      version

      + Availability

    • NumberSchema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • ObjectSchema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • POSSIBLE_ROLES

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.45 kB2.60 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      POSSIBLE_ROLES
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      POSSIBLE_ROLES
      Task
      name
      version

      + Availability

    • ResponseModality

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.44 kB2.60 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ResponseModality
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ResponseModality
      Task
      name
      version

      + Availability

    • Schema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.87 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • SchemaType

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.51 kB2.66 kB+154 B (+6.1%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • StringSchema

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • VertexAIBackend

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.40 kB2.56 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • getAI

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.76 kB2.91 kB+154 B (+5.6%)
      size-with-ext-deps27.4 kB27.6 kB+157 B (+0.6%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • getGenerativeModel

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size20.4 kB25.1 kB+4.65 kB (+22.7%)
      size-with-ext-deps38.2 kB42.9 kB+4.66 kB (+12.2%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      functions

      33 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentStream
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getGenerativeModel
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      36 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      countTokensOnCloud
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentOnCloud
      generateContentStream
      generateContentStreamOnCloud
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getGenerativeModel
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      + countTokensOnCloud
      + generateContentOnCloud
      + generateContentStreamOnCloud

      classes

      AIError
      AIModel
      AIService
      Backend
      ChatSession
      GenerativeModel
      GoogleAIBackend
      RequestUrl
      VertexAIBackend

      AIError
      AIModel
      AIService
      Backend
      ChatSession
      ChromeAdapterImpl
      GenerativeModel
      GoogleAIBackend
      RequestUrl
      VertexAIBackend

      + ChromeAdapterImpl

      variables

      22 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      25 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_HYBRID_IN_CLOUD_MODEL
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      + Availability
      + DEFAULT_HYBRID_IN_CLOUD_MODEL
      + InferenceMode

    • getImagenModel

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size9.00 kB9.15 kB+154 B (+1.7%)
      size-with-ext-deps26.7 kB26.8 kB+157 B (+0.6%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      variables

      13 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      14 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      + Availability

  • @firebase/app-check

    • initializeAppCheck

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size11.5 kB11.5 kB+10 B (+0.1%)
      size-with-ext-deps36.2 kB36.2 kB+10 B (+0.0%)
  • @firebase/firestore

    • runTransaction

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size139 kB139 kB+1 B (+0.0%)
      size-with-ext-deps211 kB211 kB+1 B (+0.0%)
  • @firebase/functions

    • connectFunctionsEmulator

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size2.84 kB2.85 kB+12 B (+0.4%)
      size-with-ext-deps25.0 kB25.1 kB+12 B (+0.0%)
    • getFunctions

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size3.03 kB3.04 kB+12 B (+0.4%)
      size-with-ext-deps32.6 kB32.6 kB+12 B (+0.0%)
    • httpsCallable

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size8.48 kB8.62 kB+141 B (+1.7%)
      size-with-ext-deps26.2 kB26.5 kB+284 B (+1.1%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      functions

      16 dependencies

      _errorForResponse
      call
      callAtURL
      codeForHTTPStatus
      createResponseStream
      decode
      encode
      failAfter
      httpsCallable
      httpsCallable$1
      makeAuthHeaders
      mapValues
      postJSON
      registerFunctions
      stream
      streamAtURL

      17 dependencies

      _errorForResponse
      call
      callAtURL
      codeForHTTPStatus
      createResponseStream
      decode
      encode
      failAfter
      getCredentials
      httpsCallable
      httpsCallable$1
      makeAuthHeaders
      mapValues
      postJSON
      registerFunctions
      stream
      streamAtURL

      + getCredentials

      External Dependency

      ModuleBase (56fbe52)Merge (75f6f28)Diff
      @firebase/util

      FirebaseError
      getModularInstance

      FirebaseError
      getModularInstance
      isCloudWorkstation

      + isCloudWorkstation

    • httpsCallableFromURL

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size8.37 kB8.51 kB+141 B (+1.7%)
      size-with-ext-deps26.1 kB26.4 kB+284 B (+1.1%)

      Dependency

      TypeBase (56fbe52)Merge (75f6f28)Diff
      functions

      14 dependencies

      _errorForResponse
      callAtURL
      codeForHTTPStatus
      createResponseStream
      decode
      encode
      failAfter
      httpsCallableFromURL
      httpsCallableFromURL$1
      makeAuthHeaders
      mapValues
      postJSON
      registerFunctions
      streamAtURL

      15 dependencies

      _errorForResponse
      callAtURL
      codeForHTTPStatus
      createResponseStream
      decode
      encode
      failAfter
      getCredentials
      httpsCallableFromURL
      httpsCallableFromURL$1
      makeAuthHeaders
      mapValues
      postJSON
      registerFunctions
      streamAtURL

      + getCredentials

      External Dependency

      ModuleBase (56fbe52)Merge (75f6f28)Diff
      @firebase/util

      FirebaseError
      getModularInstance

      FirebaseError
      getModularInstance
      isCloudWorkstation

      + isCloudWorkstation

  • @firebase/performance

    • getPerformance

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size19.1 kB19.2 kB+94 B (+0.5%)
      size-with-ext-deps61.8 kB61.9 kB+96 B (+0.2%)
    • initializePerformance

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size19.3 kB19.3 kB+94 B (+0.5%)
      size-with-ext-deps55.4 kB55.5 kB+96 B (+0.2%)
    • trace

      Size

      TypeBase (56fbe52)Merge (75f6f28)Diff
      size19.0 kB19.1 kB+94 B (+0.5%)
      size-with-ext-deps54.8 kB54.9 kB+96 B (+0.2%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/06dcYI9pTf.html

@cherylEnkidu cherylEnkidu requested a review from a team as a code owner July 21, 2025 19:27
@cherylEnkidu cherylEnkidu changed the title Fix empty message reject inside transaction body fix(firestore): fix empty message reject inside transaction body Jul 21, 2025
Copy link
Contributor

github-actions bot commented Jul 21, 2025

Changeset File Check ✅

  • No modified packages are missing from the changeset file.
  • No changeset formatting errors detected.

Copy link
Contributor

@MarkDuckworth MarkDuckworth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise, LGTM

@MarkDuckworth MarkDuckworth requested a review from dconeybe August 18, 2025 18:59
@MarkDuckworth MarkDuckworth merged commit 2058432 into main Aug 18, 2025
66 of 69 checks passed
@MarkDuckworth MarkDuckworth deleted the cheryllin/oncall9147 branch August 18, 2025 20:08
@google-oss-bot google-oss-bot mentioned this pull request Aug 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Transactions that experience errors never resolve
4 participants