> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firstrespondershub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Fix missing codes, wrong Course IDs, failed emails, locked settings, and other common student-access problems

Start here when a student says they do not have access, or when a send button does nothing. Each item is a symptom, then the fix.

## The student has no codes

<AccordionGroup>
  <Accordion title="Dashboard says Pending">
    Codes are held but not sent yet.

    1. Open **Pending deliveries** for that student.
    2. If timing is **Reserved, waiting automatic release**, wait until the date (the sender runs about once an hour). Or click **Release** to send now.
    3. If timing is **Reserved, waiting manual release**, click **Release**.
    4. If it says **Waiting for codes**, you were out of stock. [Import codes](/student-access/import-and-manage-codes).
  </Accordion>

  <Accordion title="They never got the email, but the dashboard has the codes">
    The send worked. The inbox did not.

    Click **Resend**. Ask them to check spam. The subject looks like **Your access credentials for {course}**.
  </Accordion>

  <Accordion title="They never got the email, and the dashboard is empty">
    Access was not released, or it was taken back.

    Check **Pending deliveries** and the student's **Access** tab. If the row is **Refunded** or **Taken back**, they should not have codes. If it is still pending, release or wait for the schedule.
  </Accordion>

  <Accordion title="They enrolled, but nothing appeared under Pending deliveries">
    Confirm the course delivery model is **Access from another provider** or **Both**, and that the course is assigned to that program offering (or they bought the standalone course).

    Lessons-only courses never create access rows.
  </Accordion>
</AccordionGroup>

## You cannot send

<AccordionGroup>
  <Accordion title="Release does nothing / missing access details">
    A **same for every student** field is empty (Course ID, website, approval number, or a cohort document field).

    Fill it in on **Student access** or on **Credential settings for this cohort**. June does not borrow March's Course ID.
  </Accordion>

  <Accordion title="Needs more codes / stockout email">
    Import unused codes for that course. Waiting students are filled automatically. Then follow the course timing (you may still need **Release** if timing is manual).
  </Accordion>

  <Accordion title="I imported codes, but available is still 0">
    You may have mapped the wrong column, imported for a different course, or every row was a duplicate.

    Open the import preview next time before you commit. Search one code from the file with **Search by exact code**.
  </Accordion>
</AccordionGroup>

## The student has the wrong details

<AccordionGroup>
  <Accordion title="Wrong Course ID for this class">
    Set the override on that [cohort](/student-access/different-values-per-class). Students who already received access keep what they were sent. New sends use the new Course ID. If someone already has the wrong ID, hand-enter a note in **Instructions** or contact [support](https://www.firstrespondershub.com/support).
  </Accordion>

  <Accordion title="Code says already used at the vendor">
    Search the **exact** code under **Access codes**. See who it was sent to.

    If this student never used it, the vendor may have consumed it another way. Hand-enter a replacement, and mark the old one **Already used**.
  </Accordion>

  <Accordion title="Two students got the same code">
    That should not happen for in-stock unique values. Search the code. If you pasted the same code into two hand-enters, stop and mark one burned. Import from the vendor file going forward.
  </Accordion>
</AccordionGroup>

## Refunds and leftover codes

<AccordionGroup>
  <Accordion title="Refund is blocked">
    The course uses **Stop the refund unless staff override**, and codes were already sent.

    Confirm the student should get money back, check **Override and refund anyway**, then [verify the code](/student-access/refunds-and-unused-codes) so it is not given to the next student while still active.
  </Accordion>

  <Accordion title="I refunded, but the code is not back in stock">
    If it was already sent, it is in **Needs verification**. Open it and **Mark available** or **Mark burned**.

    If it was never sent, it should already be **In stock**.
  </Accordion>

  <Accordion title="I marked a code already used by mistake">
    Open it and click **Return to stock**.
  </Accordion>
</AccordionGroup>

## Settings will not change

<AccordionGroup>
  <Accordion title="I cannot change Lessons vs Access from another provider vs Both">
    That one setting locks after a student is enrolled in a program that includes this course, after a standalone purchase, or after any access-code delivery exists. Everything else on the course is still editable. If you picked the wrong model, create a new course.
  </Accordion>

  <Accordion title="I cannot change field types">
    After students have received access, unique vs shared is locked. You can still edit labels and the student message.
  </Accordion>

  <Accordion title="I do not see Student access in the course sidebar">
    The delivery model is still **Lessons on FirstRespondersHub**, or you are signed in as an instructor. Only program owners see **Student access**.
  </Accordion>

  <Accordion title="I cannot open Access codes">
    That page is program owners only. Instructors use **Pending deliveries** and the student's **Access** tab.
  </Accordion>
</AccordionGroup>

## Email and timing oddities

<AccordionGroup>
  <Accordion title="Scheduled send was a few minutes (or up to an hour) late">
    Automatic send runs about once an hour. This is expected. Click **Release** if someone needs it immediately.
  </Accordion>

  <Accordion title="Standalone buyer asked for 'before class starts'">
    Standalone purchases have no class date. Use **Right after purchase** or **When staff sends it**.
  </Accordion>

  <Accordion title="Re-enrolled student did not get a new code">
    If they already had released access for that course, the platform reuses it on purpose so you do not burn a second keycode.
  </Accordion>

  <Accordion title="Multi-seat purchase only sent one email">
    That is normal. One digest can include every seat. In the dashboard they still show as Access code 1 of N, 2 of N, and so on.
  </Accordion>
</AccordionGroup>

## Quick "where do I click?" map

| I want to…                      | Go here                                                  |
| ------------------------------- | -------------------------------------------------------- |
| Turn on vendor access           | Course → **Course setup** → delivery model               |
| Add Course ID / student message | Course → **Student access**                              |
| Upload codes                    | **Courses → Access codes**                               |
| Send or resend                  | **Courses → Pending deliveries** or student → **Access** |
| Different Course ID for June    | Cohort → **Credential settings for this cohort**         |
| See why something happened      | **Courses → Credential Activity**                        |
| Change refund rules             | Course → **Student access** → **Advanced operations**    |

If you have checked this page and it still looks wrong, contact [First Responders Hub Support](https://www.firstrespondershub.com/support) with the student name, course, and the status shown on Pending deliveries.
