Start by ruling out the boring causes, because they account for most cases and they are all quick to check in Search Console’s Pages report.
The mechanical causes
You are blocking it. A noindex tag left over from a staging build is the single most common cause. Check the page source. Then check robots.txt for a Disallow that is broader than intended — and if you generated that file from a tool, read what it actually blocks rather than assuming.
It is not linked from anywhere. A page reachable only by typing its URL will be crawled slowly if at all. Internal links are how crawlers find and prioritize pages.
It is not in your sitemap, or your sitemap is not referenced in robots.txt and never submitted.
It duplicates another page, and Google picked the other one as canonical.
The uncomfortable cause
If none of those apply and Search Console says “Discovered — currently not indexed,” the honest reading is that Google found the page and decided it was not worth indexing yet. That is a quality and authority judgment, not a bug, and it is extremely common on newer sites and on large batches of similar pages published at once.
Requesting indexing on individual URLs helps marginally and does not change the underlying assessment. What changes it: fewer, better pages rather than more pages; genuine internal links from pages that already have standing; and time on a domain that keeps publishing things worth indexing.
The trap here is responding to slow indexation by publishing more. If Google is already declining to index what exists, additional thin pages make the ratio worse rather than better.
What to actually do
Fix the mechanical causes, submit the sitemap, link the orphans from relevant pages, and then leave it alone and improve the pages that already earn impressions. Crawl budget matters at scale; below a few thousand pages it is almost never your real problem.