Welcome Edit the Doc Site Product Offerings Program Starting Point Navigation Organization Dropdown Program Types Private vs. Public Programs Parent/Child Programs VDP vs. BBP Using Markdown Running a Good Program Authenticated Testing Scoping Considerations Traffic Identification Homepage Engagements Organization Profile Users Groups General Settings User Management Groups and Permissions Security Page Program Metrics Response Target Indicators Top Hackers Asset Inventory Policy and Scope Good Policies Safe Harbor FAQ Gold Standard Safe Harbor Statement Program Levels Defining Scope Scope Best Practices Asset Types Severity Environmental Score Bounty Tables Importance of Bounty Tables Submit Report Form Report Templates Pausing Report Submissions Response Targets Response Target Metrics Setting Response Targets Invitations Reputation Signal and Impact CVE Requests Submission Signal Requirements Human-Augmented Signal Single Sign-On via SAML JIT Provisioning Domain Verification Google Okta OneLogin FAQs Two-Factor Authentication Invalid OTP Code Sessions Credential Management Asset-Based Credential Management Notifications Response Programs Inbox Inbox Views Report Management Report Actions Report States Report Components Quality Reports Locking Reports Duplicate Reports Duplicate Detection Exporting Reports Response Labels Keyboard Shortcuts Custom Fields Disclosure Limiting Disclosed Information Retesting Vacations HackerOne on Your Program Supported Integrations Integration Variables Webhooks API Tokens Assembla AWS Security Hub Azure DevOps Brinqa Bugzilla Freshdesk GitHub GitLab HackEDU IBM Security QRadar SOAR Jira Jira Setup Jira Migration Guide Jira FAQs Kenna Security Linear MantisBT Microsoft Teams OTRS PagerDuty Phabricator Redmine ServiceNow Slack Splunk Sumo Logic Trac Zendesk Billing Bounties Swag Bonuses Dashboards Program Overview Submissions & Bounty Dashboard Statistics Dashboard Hacker Engagement Hacker Feedback Dashboard Explore Audit Logs Industry Benchmarking Hacktivity Communicating with Hackers Message Hackers Banning Hackers Hacker Email Alias Program Mediation & Code of Conduct Review Requests Hacker Reviews Disclosure Assistance HackerOne Clear Gateway FAQs Pentest Overview FAQs Retesting Pentest Automation Common Responses Triggers Hackbot Email Forwarding Embedded Submission Form Import Vulnerabilities IP Allowlists Multi-Party Coordination Password Best Practices Proof of Compliance Slack Shared Channels Reducing Noise Team Member Eligibility Invalid OTP Code
Why is my OTP code invalid?
When signing in to your HackerOne account using two-factor authentication, your OTP code generated on Google Authenticator may be invalid. If you run into this issue, it may be because your device time differs from the HackerOne system time by more than 90 seconds, which will result in the generation of the wrong code.
The time discrepancy may occur because:
You set your phone time settings manually and it later switched to automatic (or vice versa)
Your device switched NTP servers (a server used to sync clocks in networks)
To fix the the issue, set your clock settings to sync automatically:
On your Google Authenticator app:
1. Go to Settings > Time correction for codes. 2. Click Sync now. On your iphone:
1. Go to Settings > General > Date & Time. 2. Enable Set Automatically.