Repository navigation
Conversation
Device IdP failures show the person only "We were unable to verify your device identity" and a reference. Since deviceidp#151, each attempt records an Audit event with a reason and the certificate, device and user involved, but nothing explains how to use it. Add a guide that shows how to find the event in Audit, what its context fields mean, and the next step for each reason. It also covers the failures that record no event (TLS handshake errors and unknown client IDs), identity providers that reject a successful check, and failures while a person enrolls the factor. Link it from the agent troubleshooting guide and add it to the sidebar.
|
|
dopey
approved these changes
Oct 13, 2026
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.
For PRO-608: Netflix wants their ops team to identify the next troubleshooting step from our audit log, without opening a support request.
What this adds
A new page, Device IdP Troubleshooting Guide (
platform/troubleshooting-device-idp.mdx), in the sidebar under Configure Devices for Smallstep, next to the existing Troubleshooting Guide. The existing guide's "Where to begin?" list now links to it. The page covers:contextfield.reasonwith its next step, plus tables for identity provider configuration errors and/tokenerrors.user.emaildoesn't match the sign-in username.Everything was checked against deviceidp
main(after smallstep/deviceidp#151) and the console's Audit page onwebmaster. The TLS behavior was observed with read-only probes againstsmallsteplabs.id.smallstep.com: the acceptable-CA list, theunknown caalert for an untrusted client certificate, and theinternal erroralert for an unknown team slug. The alert for an expired certificate comes from Go'scrypto/tlssource. Thestep certificate verifyusage was tested with a leaf + intermediate bundle, and with the leaf alone.PRO-608 validation items
/authorizedevice check and records the same events. This follows from how the OIDC flow works; I haven't watched an Okta enrollment attempt end to end.openssl s_clientacceptable-CA list and the TLS alert names), but Netflix's ops team still can't see these failures in the console. This is the remaining visibility gap for PRO-608.Product follow-ups this guide works around
RequestClientCertand verifying inVerifyPeerCertificate, with the team taken from the server name.messageanderror, notrequest_id, so the fail page's reference can't be pasted into search. The guide tells people to filter by category and time, then compare the Request ID. The fix is one moreOR request_id = $Ninservice/search_events.go.urn:smallstep:host:id:<uuid>, which deviceidp doesn't parse. Those certificates resolve only when their common name equals the inventory serial. The guide's "contact support if it's the certificate the agent issued" step is there because of this.Questions for review
hostidmust equal the device's host ID": does the console show a device's host ID? If not, readers can't do that comparison.https://smallstep.com/app/?next=/audit, following the docs' existing?next=pattern. The link checker only confirmed a 200, not where it lands.Linting
vale --no-wrapreports nothing on the new page, run against the repo's committed.valestyles.markdown-link-checkpasses for both changed pages, including every in-page anchor.Heads-up:
vale syncoverwrites the committed.vale/styles/Google/*files with the upstream package versions. The same uncommitted changes are sitting in the maindocscheckout, so a lint run there doesn't use the repo's own rules.