A record gets its number when it is created, by one of two routes.
Directly, where ActiveManage creates the record
The Workflow Builder's Create node and data layout submissions request a number as part of creating the record. This route is reliable and needs no configuration beyond the scheme itself.
Through a table rule
A rule on the datastore can fill the number field as a record is added, if it is empty. This is what covers records created through ordinary forms. It is best-effort, since it depends on working out which datastore is being written to.
If numbering stops working
This fails silently. The rule refers to a piece of platform code by name, and if that name changes during an upgrade without the rule being updated, numbering simply stops. New records get a blank number field, nothing is written to the error log, and nobody is told.
So: if numbers stop appearing after a platform upgrade, check the table rule on that datastore before looking anywhere else. It is worth spot-checking after any upgrade rather than waiting for somebody to notice.
A blank number on an existing record
Means the record was created before the scheme existed, was created by a route that does not assign one, or numbering had silently stopped. Check the record's creation date against when you set the scheme up.