- Home
- Blog
- Troubleshooting
- I Cannot Assign an Operator to a Step: Why, and th…
I Cannot Assign an Operator to a Step: Why, and the Fix
An operator you cannot pin, or a step that refuses to staff the person you chose, is almost always a skill, certification, or roster gap rather than a fault, and the block is specific enough to name. The system is deliberately strict here: a named person's absence surfaces as visible schedule movement, and an unqualified assignment is refused rather than quietly allowed.
EDGEBIC by User Solutions treats the operator as a second constraint alongside the machine, so a step needing a certified person only schedules when one is genuinely available. This post sits in the EDGEBIC troubleshooting guide and is the companion to setting up operators, skills, and rosters and how EDGEBIC books operator hours.
Block 1: The Pin Picker Is Disabled
The most common "cannot assign" is the pin picker being greyed out before you can pick anyone. This is by design: pinning a step to one named person only makes sense once the step declares which skill it needs, so the pin editor stays disabled until a required skill is set.
How to tell: the step has no required skill, and the operator picker is unavailable.
Fix: set the step's required skill first. The pin picker then enables and lists only operators certified for that skill. A pin without a skill is not a valid state; the skill is what defines who is eligible. Attend fraction and operator scheduling covers how a skill step consumes operator time.
Block 2: The Person Is Not in the Pin List
With a skill set, the pin list shows only operators certified for it. If the person you want is absent from the list, they are not currently certified for that skill.
How to tell: the picker is enabled but the operator you expected is not offered.
Fix: certify the operator for the skill on their record, then the pin list includes them. Note that an expired certification is filtered out entirely, so a lapsed renewal removes an operator who was previously eligible. If someone who should qualify is missing, check their certification's expiry date before anything else.
Block 3: The Pin Is Set but the Step Slides Past Them
A pin is a hard assignment, not a preference. The pinned person is the only one who can staff the step, so if they are on time off or not rostered on the days the step would run, the step waits for a day they are present rather than handing off to a substitute.
How to tell: the pin is set to a valid, certified operator, and the step slid to a later day that matches when that person is next available. This is one of the documented reasons behind a job that jumped after a reschedule: the labor constraint moved it.
Fix: this is usually correct, and the visible slide is the point: a named person's absence should move the schedule, not be silently covered by someone else. If you actually want any qualified person to staff it, clear the pin (choose the auto or unassigned option) and the full pool covers it. If the pinned person's absence is a data error, correct their time off or roster.
Block 4: The Pinned Operator Is Inactive or Lost the Skill
If a pinned operator is deactivated, or the step's skill is changed to one the pinned person does not hold, the step cannot staff the pin. Rather than silently reassign, the run fails fast for that step with a hint naming the problem.
How to tell: the run reports the step could not staff its pinned operator, naming either an inactive operator or a skill mismatch.
Fix: reactivate the operator, certify them for the new skill, or clear and re-set the pin to a qualified person. The pin deliberately does not fall back to the pool, because a hard assignment that silently substitutes would defeat the purpose of naming a person.
Block 5: The Operator-Lane Drag Reverts
On the Schedule view's operator-lane mode, dragging a bar to a person's lane reassigns the step to them. The drop is accepted only onto an operator qualified for the step's skill; an unqualified drop reverts and states why.
How to tell: the drag snapped back, and the message names an unqualified target.
Fix: certify the target operator for the skill, or drag to a different qualified person. Dropping onto the unassigned lane is always allowed and clears the pin, handing the step back to the full qualified pool.
Block 6: The Pool Reads Empty Despite a Qualified Person
Sometimes the picker and the person look right, yet the run reports no qualified operator for the step. The pool can read empty for three reasons stacked underneath the obvious ones:
- Expired certification. Filtered out entirely, so a lapsed cert removes the operator even though the record remains.
- A custom machine shift with no global parent. Rosters key to a shift; a custom machine shift that is not derived from a global shift has no roster row that can reference it, so the pool for any skill step routed there is zero. This fails loudly rather than staffing wrongly.
- Time off on the specific days the step would run.
How to tell: the session log records the staffing decision per skill step and names exactly why the pool came up empty.
Fix: renew the certification, derive the custom shift from a global shift (or roster people on a global shift the machine mirrors), or correct the time off. The custom-shift case is intentional strictness: a silent pass there would let a step schedule with nobody actually able to stand at the machine.
A Note on Reschedule Persistence
A pin has to reach both the live routing and the job's routing snapshot to survive a reschedule, because some reschedule modes read the snapshot. The supported paths, the step's operator picker and the operator-lane drag, write both at once. If pins keep vanishing on reschedule, they were set through an unsupported path; re-set them through the picker and they hold. Routing snapshots explained covers why the snapshot matters.
Prevention
- Set the skill before the pin, always. The skill defines eligibility; the pin without it is not a valid state.
- Keep certifications current. An expired cert silently removes an operator from every pool they held, which looks like a mystery until you check the expiry date.
- Derive custom machine shifts from global shifts so rosters can reference them. A parentless custom shift is the quiet cause of a step that finds nobody to staff it.
- Use the supported pin paths. The operator picker and the lane drag write the pin everywhere it needs to go; hand-editing does not, and the pin reverts on the next reschedule.
Because pinning requires the step to have a required skill first. The operator pin narrows a step to one named person, and that only makes sense once the step declares which skill it needs, so the pin picker stays disabled until a skill is set. Once a skill is set, the pin list shows only operators certified for it. If the person you want is not in the list, they are not currently certified for that skill, which is the second thing to check.
Because a pin is a hard assignment, not a preference. The pinned person is the only one who can staff that step, so if they are on time off or not rostered on the days the step would run, the step waits for a day they are present rather than handing off to someone else. That is deliberate: a named person's absence shows up as visible schedule movement instead of a silent substitution. If you want any qualified person to cover it, clear the pin and let the full pool staff it.
Because the target operator is not qualified for the step's skill. The operator-lane drag is a reassignment gesture, and it only accepts a drop onto a person certified for the skill the step requires; an unqualified drop reverts and tells you why. Certify the operator for that skill first, or drag to a different qualified person. Dropping onto the unassigned lane is always allowed and simply clears the pin so the full qualified pool staffs the step.
Expert Q&A: Deep Dive
Q: We pinned a welder to a step, and the next reschedule the pin was gone. Why did it revert?
A: A pin has to be written to two places to survive a reschedule: the live routing and the job's routing snapshot that certain reschedule modes read from. If a pin was set through a path that only updated the live routing, a snapshot-reading reschedule reverts it. The supported way to set a pin, the step's operator picker or the operator-lane drag, writes both at once, so the pin persists. If pins keep vanishing on reschedule, they were set through an unsupported path; re-pin through the picker and it will hold.
Q: The operator is right there, certified and rostered, but the schedule says no qualified operator for the step. What are we missing?
A: Check three things in order. First, certification expiry: an expired certification is filtered out entirely, so a lapsed renewal removes the operator even though the record still exists. Second, the shift the step runs on: rosters key to a shift, and if the step runs on a custom machine shift that is not derived from a global shift, no roster row can reference it and the pool reads empty. Third, time off on the specific days. The session log records the staffing decision per skill step, which names exactly why the pool came up empty.
Frequently Asked Questions
Ready to Transform Your Production Scheduling?
User Solutions has been helping manufacturers optimize their production schedules for over 35 years. One-time license, 5-day implementation.

User Solutions Team
Manufacturing Software Experts
User Solutions has been developing production planning and scheduling software for manufacturers since 1991. Our team combines 35+ years of manufacturing software expertise with deep industry knowledge to help factories optimize their operations.
Share this article
Related Articles
An Operation Moved and the Machine Was Free: Finding the Hidden Cause
A job slid and every machine shows open hours. Tooling is the cause the Gantt cannot draw. How to rule it in or out in two minutes before you chase calendars.
An Operation Shows Running Forever Though All Hours Are Logged
A step stays in progress after every hour is logged because completion is an explicit stamp, not an hours threshold. How to close it and stop it recurring.
Another User Changed This Record: Causes and Fixes
EDGEBIC refuses a save when the record moved after you loaded it. The usual cause is a colleague, but the message also appears when you are alone. How to read it and what to do.
