Repository navigation
docs(ui-capture): add the four capture SDK 3.1.0 error codes to the errors page - #961
Merged
Merged
Conversation
…rrors page @keploy/capture-sdk 3.1.0 links every onError CaptureError (remedy.docs) and every SDK_WARNINGS entry to https://keploy.io/docs/ui-capture/errors#<code>, and four of those anchors did not exist: kui-e-capture-declined, kui-e-privacy-conflict, kui-e-navigation-unwrapped and kui-e-request-term-failed. Adds a section for each, in the page's existing format, describing keploy/ui-capture main at 1a95cf1c92: - KUI_E_CAPTURE_DECLINED: Do Not Track or Global Privacy Control with honorPrivacySignals on (the default). Nothing is recorded, patched or sent; onError hears every declined init(), console.info once per page. - KUI_E_PRIVACY_CONFLICT: privacyMode "strict" with privacy.maskNetworkBodies false (defaultPrivacyConfig() included). - KUI_E_NAVIGATION_UNWRAPPED: a locked History or Navigation API method, so none is wrapped; what the recording loses. - KUI_E_REQUEST_TERM_FAILED: the GraphQL term threw (no term) or its chunk did not load (body:* for the life of the page); how each replays. Also fixes what the new codes made false on the page: "seven" error codes, "every warning drops an event", and init() from onError always starting a fresh capture. Adds the four codes to verify-ui-capture-sdk-links.js, so CI fails if any of the SDK's 14 links has no section. Signed-off-by: slayerjain <shubhamkjain@outlook.com>
slayerjain
added a commit
that referenced
this pull request
Nov 12, 2026
…he SDK does Review of #961: the request-term replay paragraph exposed private matching rules and is cut to what an integrator can rely on; the unwrapped-navigation scrub sentence now says what is still scrubbed by name and shape; a page without SubtleCrypto is plain HTTP from a host other than localhost or a loopback address; the intro names SDK_WARNINGS once. Signed-off-by: slayerjain <shubhamkjain@outlook.com>
A review of the four new sections found claims that went past what the SDK does. The request-term replay paragraph exposed private matching rules and is cut to what an integrator can rely on. The unwrapped navigation sentence now says what is still scrubbed by name and shape. A page without SubtleCrypto is plain HTTP from a host other than localhost or a loopback address. The intro names SDK_WARNINGS once. Signed-off-by: slayerjain <shubhamkjain@outlook.com>
slayerjain
force-pushed
the
docs/ui-capture-sdk-error-codes
branch
from
November 12, 2026 09:36
ab69fab to
e755345
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@keploy/capture-sdk3.1.0 adds four codes that link to sections of https://keploy.io/docs/ui-capture/errors that do not exist yet. EveryonErrorCaptureErrorcarriesremedy.docs, and eachSDK_WARNINGSentry carries the same kind of link:https://keploy.io/docs/ui-capture/errors#<code in lower case, '_' -> '-'>. The live page has no#kui-e-capture-declined,#kui-e-privacy-conflict,#kui-e-navigation-unwrappedor#kui-e-request-term-failed, so those links open the top of the page.SDK version described: the sections describe
@keploy/capture-sdk3.1.0, as on keploy/ui-capturemainat 8299000d4c (the 3.1.0 release-prep commit; 3.1.0 is not on npm yet, whoselatestis still 3.0.1). Every sentence was checked against the SDK source at 1a95cf1c92, and an independent review rechecked them at 8299000d4c, where the four codes' behaviour is unchanged:packages/sdk/src/errors.ts,index.ts,recorder.ts,transport.ts,network.ts,request-term.ts,types.ts,privacy.tsandredact.ts. It was also checked against the SDK's tests, the contract's error corpus (packages/contract/generated/error-corpus.json),spec/sdk-errors.v3.jsonandspec/canonical-key.v2.json. Claims about 3.0.1 were checked against the 3.0.1 package on npm.What changes
versioned_docs/version-4.0.0/ui-capture/errors.md(served at/docs/ui-capture/errors):## \CODE` {#id}`, then What happened / Cause / Fix / Evidence.KUI_E_CAPTURE_DECLINED(error)honorPrivacySignalsis on, which is the default.init()then records, patches and sends nothing.onErrorhears every declinedinit(), and theconsole.infoline is written once per page.sampleRate,sessionIdGenerator, the privacy-route check and the rrweb import. So those errors never show up in Brave or DuckDuckGo, which send GPC by default.honorPrivacySignals: falseonly with your own lawful basis.KUI_E_PRIVACY_CONFLICT(error)privacyMode: "strict"together withprivacy.maskNetworkBodies: false. That includes aprivacyobject built from the exporteddefaultPrivacyConfig(), whosemaskNetworkBodiesisfalse.KUI_E_NAVIGATION_UNWRAPPED(warning, console only): the page locked a History or Navigation API method the SDK wraps, so the SDK wraps none of them. The section lists what the recording loses.KUI_E_REQUEST_TERM_FAILED(warning, console only)body:*, and so is every such request for the rest of the page.console.info.onErrorexample returns early on the decline.init()again fromonError" sentence now names the five codes that come back with the same options, because a handler that retries on them calls itself again.scripts/verify-ui-capture-sdk-links.js: the four codes are added toERROR_CODES. CI'syarn verify-ui-capture-sdk-linksnow fails if any of the SDK's 14 links (SDK_ERRORSplusSDK_WARNINGS) has no<h2 id>with What happened / Cause / Fix.Checks
prettier@2.8.8 --check(the version CI pins) passes on both files.remedy.docsfragments inspec/sdk-errors.v3.jsonequal a{#id}on the page byte for byte, and the verifier's list equals that set.{#id}headings. It passes on this branch, and fails onmainfor exactly the four new anchors. On the live site, Docusaurus renders each existing{#id}as that<h2 id>. I did not run a fulldocusaurus buildlocally; CI's build andverify-ui-capture-sdk-linkscover that.Review follow-up (e755345): four claims narrowed to what the SDK does: the request-term replay paragraph, which exposed private matching rules; what is still scrubbed after an unwrapped navigation; secure contexts (localhost and loopback); and the intro's repeated
SDK_WARNINGS.