Resubmitting after rejection
When a reviewer rejects a module, your course doesn’t fail outright — the rejected module is sent back to you as draft, and you address the feedback before resubmitting. Other modules in the same course continue being reviewed.
This page walks through the resubmission flow.
How you find out
When a reviewer rejects a module, you get:
- An email with the reviewer’s name, the module title, and their rejection comment
- A red badge on the Queries tab at
/admin/approvals/queries - The module appears in the Queries tab with the full thread
Step 1 — Open the Queries tab
Go to /admin/approvals/queries. Each rejected module appears as a card showing:
- The module title and course
- The rejection comments — one per section/question, in red bubbles
- The reviewer’s name and timestamp on each comment
- Any previous trainer replies (in blue bubbles) if you’ve replied before
Step 2 — Address the feedback
Most rejections are specific: “Question 3’s correct answer is wrong” or “The example in card 4 contradicts our SOP”. Go to the relevant module/card/question and fix it.
If the rejection is vague (“Doesn’t feel right”), you might want to ask the reviewer to clarify before changing anything. Reply in the Queries tab thread; the reviewer gets notified.
Step 3 — Write a reply
Back in the Queries tab, scroll to the bottom of the rejection thread. There’s a reply textarea.
Write a short note explaining what you changed:
- “Fixed the correct answer on question 3 — now matches the SOP.”
- “Rewrote card 4 with the example from the latest training memo.”
- “Clarified the rejection — could you say more about which part felt off?”
Keep it factual and short. Reviewers don’t need the philosophy; they need to know what to re-check.
Step 4 — Send & resubmit
Click Send & Resubmit for Review.
What happens:
- Your reply is saved to the thread.
- A new
approval_requestis created for the module. - The module flips from
draftback topending_approval. - The workflow restarts at step 1 — the whole chain runs fresh, even if the rejection came from step 2 or step 3.
- Reviewers at step 1 get notified.
The card disappears from your Queries tab (it’s no longer “pending a reply”) and reappears in the approvals kanban under Pending Approval.
Why the workflow restarts
If your fix at step 1 changes something the step 2 reviewer cared about, step 2 needs to re-evaluate the new version. Restarting the whole chain ensures every reviewer reads the final version of the module.
This is a deliberate choice. The alternative (resume mid-chain) is faster but creates a risk where step 3 approves content that step 1 might no longer approve.
What if multiple modules are rejected
Each rejection has its own thread in the Queries tab. Address them in any order — they’re independent. Each Send & Resubmit resubmits one module.
If a course has 5 modules and 2 are rejected, only those 2 cycle back through approval. The other 3 stay in whatever state they were last in.
What if the rejection is unfair
It happens. Sometimes a reviewer misreads or has a strong personal preference that doesn’t reflect policy. Two paths:
- Discuss in the thread. Reply with your reasoning. If the reviewer agrees, they can approve next time you resubmit (without you needing to change anything). Just resubmit the unchanged module.
- Escalate to your super_admin. They can override the rejection if it’s clearly wrong. This should be rare — most disagreements are best resolved by discussion.
How long can a query thread go
Indefinitely. You can have back-and-forth replies as long as needed. Each reply doesn’t trigger a new approval_request — only Send & Resubmit does that.
If a thread is dragging on, consider switching to a synchronous channel (call, Slack DM) and then summarising the resolution in the thread for the audit trail.
What if I want to abandon the course
If the rejection makes you realise the course shouldn’t exist (the policy changed, the topic is no longer relevant), don’t fix-and-resubmit. Instead:
- Don’t reply in Queries.
- Go to the course settings.
- Archive the course.
Archiving stops the approval flow. The course doesn’t get published. Existing learners aren’t affected (because it was never published). The audit trail shows you archived rather than completed the cycle.
Audit trail
Every rejection, every reply, every resubmission is recorded in the audit log:
approval.reject— when a reviewer rejectsapproval.query_reply— when you reply without resubmittingmodule.resubmit_after_rejection— when you click Send & Resubmit
For compliance customers, this is the auditable record of how every course iterated through review.