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 Industry Best Practices Authenticated Testing Scoping Considerations Traffic Identification Detailed Platform Standards Engagements Campaigns Organization Profile Users Groups Asset Inventory Asset Types External Attack Surface Management Solution General Settings User Management Groups and Permissions Security Page Program Metrics Response Target Indicators Top Hackers Policy and Scope Good Policies Standard Ineligible Findings Safe Harbor FAQ Gold Standard Safe Harbor Statement Program Levels Defining Scope Scope Best Practices Severity Environmental Score Bounty Tables Importance of Bounty Tables Internet Bug Bounty 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 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 Using the Support Portal 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 Request Code Review (BETA) Vacations HackerOne on Your Program Supported Integrations Integration Variables Webhooks API Tokens Assembla AWS Security Hub Azure DevOps Brinqa Bugzilla ClickUp ClickUp Setup Freshdesk GitHub GitLab HackEDU IBM Security QRadar SOAR Jira Jira Setup Jira Migration Guide Jira FAQs Kenna Security Linear Linear Setup MantisBT Microsoft Teams OTRS PagerDuty Phabricator Redmine SafeBase ServiceNow Slack Splunk Sumo Logic Trac Zendesk Billing Bounties Swag Bonuses Dashboards Program Overview Submissions Dashboard Bounty Dashboard Statistics Dashboard Hacker Engagement Dashboard Hacker Feedback Dashboard Response Efficiency Dashboard Explore Program Status Reports Audit Logs Industry Benchmarking Hacktivity CVE & CWE Discovery Communicating with Hackers Message Hackers Banning Hackers Hacker Email Alias Program Mediation & Code of Conduct Review Requests Hacker Reviews Disclosure Assistance HackerOne Clear Gateway Gateway V1 FAQs Gateway V1 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 issue, set your clock settings to sync automatically:
Android Users
iOS Users
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 .