Skip to content

fix(internal-plugin-support,plugin-logger): when log upload fails, upload the failed logs in the next attempt#4996

Open
dominiccarrington wants to merge 6 commits into
webex:nextfrom
dominiccarrington:docarrin/fix/upload-logs-on-next-interval-on-failure
Open

fix(internal-plugin-support,plugin-logger): when log upload fails, upload the failed logs in the next attempt#4996
dominiccarrington wants to merge 6 commits into
webex:nextfrom
dominiccarrington:docarrin/fix/upload-logs-on-next-interval-on-failure

Conversation

@dominiccarrington
Copy link
Copy Markdown
Contributor

@dominiccarrington dominiccarrington commented May 20, 2026

This pull request addresses

If uploading the incremental logs hits a 429, we lose the logs being submitted to the backend in that attempt.

by making the following changes

Reset the nextIndex to the last submitted index when the upload of the incremental logs fails.

This logic is behind a config value (retryFailedLogUploadsAtNextInterval) as to not breaking existing behaviour.

Change Type

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tooling change
  • Internal code refactor

The following scenarios were tested

Tested by blocking the requests in the Devtools and checking the internal property values followed by unblocking the request and checking the values again

The GAI Coding Policy And Copyright Annotation Best Practices

  • GAI was not used (or, no additional notation is required)
  • Code was generated entirely by GAI
  • GAI was used to create a draft that was subsequently customized or modified
  • Coder created a draft manually that was non-substantively modified by GAI (e.g., refactoring was performed by GAI on manually written code)
  • Tool used for AI assistance (GitHub Copilot / Other - specify)
    • Github Copilot
    • Other - Please Specify
  • This PR is related to
    • Feature
    • Defect fix
    • Tech Debt
    • Automation

I certified that

  • I have read and followed contributing guidelines
  • I discussed changes with code owners prior to submitting this pull request
  • I have not skipped any automated checks
  • All existing and new tests passed
  • I have updated the documentation accordingly

Make sure to have followed the contributing guidelines before submitting.

@dominiccarrington dominiccarrington requested review from a team as code owners May 20, 2026 11:06
@dominiccarrington dominiccarrington added the validated If the pull request is validated for automation. label May 20, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1120b74b3e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread packages/@webex/internal-plugin-support/src/support.js Outdated
@aws-amplify-us-east-2
Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-4996.d3m3l2kee0btzx.amplifyapp.com

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c20b0a8a29

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread packages/@webex/internal-plugin-support/src/support.js Outdated
Comment thread packages/@webex/plugin-logger/src/logger.js
Comment thread packages/@webex/plugin-logger/src/logger.js
@dominiccarrington
Copy link
Copy Markdown
Contributor Author

@codex rereview this PR

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eaa502a18c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

return this.webex
.upload(uploadOptions)
.then((res) => {
this.webex.logger.updateLastSubmittedIndex();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Tie the checkpoint to the upload that just succeeded

When two incremental log uploads overlap, this marks the shared logger checkpoint using the current nextIndex, not the index range that this particular upload actually sent. The meetings code can fire uploads without awaiting earlier ones (for example setLogUploadTimer() calls this.uploadLogs() and immediately schedules the next timer, and other meeting events call uploadLogs() too), so if upload A formats logs 0..N, upload B then formats newer logs and advances nextIndex, and only A succeeds, this line records B's unsent range as successfully submitted; a later B failure will reset to that advanced lastSubmitted and skip retrying B's logs. Capture the indexes returned/advanced by formatLogs({diff: true}) per upload and only checkpoint those after that same upload succeeds.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

validated If the pull request is validated for automation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants