Skip to main content

CACFP troubleshooting

Start from the message on your screen. If you are not sure this is the right module, the symptom index lists every message in the portal in one place.

Where an entry below says something is not fixable from the screen, that is a defect in PTRS, not a mistake you made. Report it to whoever looks after PTRS for your organisation, and use the workaround given.

Five facts sit underneath most of this page:

  1. A claim cannot be created. The Create New Claim button sends a programme PTRS does not recognise, and that button is the only way to start a claim. Everything downstream of a claim is therefore unreachable.
  2. A meal record is never marked valid. Every tick, every "Validated" counter and every reimbursement figure that depends on validity is structurally zero.
  3. Enrolment is the only eligibility screen there is. Income applications, income verifications and area eligibility are all built completely with no screen, so nothing in the product can reach them, and an enrolment, once created, can never be corrected or withdrawn.
  4. Every create form on the menu, inventory, procurement, Buy American and special-dietary screens fails. Seven forms, one pattern: the page sends a site or staff id the form never collected, and sends it blank. Retrying never helps and the toast never says why.
  5. The same pattern covers the operations screens, plus a second one. Six more create forms send a blank or "every site" value where PTRS needs one real site, vended meals, production records, corrective actions, self-audit, and four read requests send "every site" where PTRS needs one, which PTRS refuses outright rather than with a helpful message. Where a dropdown is involved, the values it offers are often not ones PTRS recognises.

All five are explained on the module landing page.

A meal count will not save

"Failed to log meal count. Please try again." on Point of Service Entry

The Record Meal Count form on this screen sends your signed-in email address where a staff record's id belongs, and PTRS refuses the request before any of its usual checks even run. Retrying never helps.

Use the header's + → Meal Count dialog instead. It is the only meal-entry screen in PTRS with a staff picker, and therefore the only one that sends a real staff member. See Record a meal count.

"Failed to save meal record" on CACFP Meal Service or Meal Records

The Log Meal Count composer and the Log Meal sheet both send your organisation's own id where a staff member's id belongs, a placeholder the screen's builders left in until real staff identity was wired up. PTRS accepts the shape of the value, and then refuses because it does not match any staff member.

Use + → Meal Count in the header instead.

"Duplicate meal record. Edit existing record '…' instead."

A meal record already exists for this site, date and meal period. PTRS allows exactly one.

Find the existing record on Meal Records, move to the date, and the meal-period card will already show a total. Edit it rather than creating a second, but read Correct or remove a meal count first: the edit dialog adds to the count instead of replacing it.

"Enter at least one meal count"

All three age-band boxes in the quick-add dialog are zero. Nothing is sent.

Enter the counts. If a meal genuinely served nobody, do not create a record, an empty record is not the same as no record, and PTRS has no way to tell them apart.

"Enter at least one menu item"

The Items Served box is empty, or holds only commas and spaces. Items are split on commas, trimmed, and blank entries dropped.

List the menu, comma-separated. Nothing checks it against the meal pattern on this path.

The Recorded By dropdown is empty

The dialog lists active staff at the selected site. Either the site has none, or its staff records are marked inactive.

Add the staff member, or reactivate them, in Staff. The field is a dropdown and cannot be typed into, there is no way to record a meal count without a staff record existing.

"Invalid meal type: EveningSnack."

Only reachable through direct system access. PTRS's first check accepts six meal types including this one; the five real meal types do not include it, so the second check catches it and refuses.

Use one of Breakfast, AM Snack, Lunch, PM Snack, Supper. No screen offers Evening Snack.

A meal count will not change

"Meal records older than 60 days cannot be corrected."

The record's meal date, not its creation date, is more than 60 days ago. The window applies to both correcting and deleting.

Not fixable from the screen. The record is now permanent. The Meal Records table disables both buttons and shows a clock icon past the window, so you can usually see this before pressing.

The edit dialog saved a bigger number than I entered

The edit dialog loads the record's existing counts behind the scenes and then shows boxes for its own six age bands, which no other screen writes to. The original counts stay hidden and are included in what gets saved. PTRS adds up every number in the whole set.

A record of 15 meals, edited to show 3 in one band, is saved as 18.

Delete the record and create it again from + → Meal Count. Both stay inside the 60-day window and both are recorded in the audit trail. Do not use Edit to reduce a count. Full worked example in Correct or remove a meal count.

I deleted a meal record and want it back

Deleting a meal record removes the row itself from PTRS, rather than marking it hidden. PTRS has a gentler removal built in that keeps the row and records why, and no screen calls it.

Not fixable from the screen. Re-create the record from your paper point-of-service record. The audit trail will show the deletion and the re-creation; it does not hold the deleted values.

A claim will not do what I expect

"Invalid program type: CACFP." after pressing Create New Claim

The button sends "CACFP" as the programme, and PTRS only recognises ARAS and SFSP. The parse fails.

This is not a data problem and there is no workaround from the screen. Starting a claim is the only path that creates one, and this button is the only screen action that ever calls it. Not fixable from the screen; it is a small, well-understood change on the PTRS team's side.

"Please select a location first." after pressing Create New Claim

No site is selected in the header. The button checks for one before sending anything.

Pick a site in the header. You will then get the programme message above instead.

"No claims found." on Claims Management

There are no claims, and there cannot be, see above. The status filter offers six statuses over an empty list.

Not fixable from the screen.

The claim month cannot be changed

Create New Claim always uses the current month and year. There is no month picker.

Not fixable from the screen. A claim for a past month cannot be started even once the programme is corrected.

"Claim Validation, 0 rules checked"

The checks PTRS runs against a claim are only ever written into your organisation by a routine that runs automatically when PTRS starts up in its development setting, for one fixed organisation. In staging, production or an installed copy, that list is empty.

With zero checks, PTRS reports zero blocking failures and says the claim can be submitted. Not fixable from the screen, there is no way to add a check rule from any page. Do not read "0 rules checked" as a clean claim.

The Override button on a failed validation rule does nothing

The button has nothing behind it when pressed. The action it should call exists, and no screen calls it.

Not fixable from the screen. The failed rule cannot be overridden.

The panel says "Run validation to check this claim" and there is nothing to press

Checking a claim on demand has no screen anywhere. Checks only run as a side effect of pressing Submit Claim.

Submit the claim; the result appears in the panel afterwards. There is no way to check a claim without submitting it.

"Claim has N blocking validation error(s) that must be resolved before submission."

One or more blocking checks failed. In a development copy of PTRS the usual cause is the "Zero Operating Days" check, which counts days with a validated meal record, and no meal record is ever validated, so it finds zero on every claim and blocks every submission.

Not fixable from the screen. Which checks can genuinely fail, and which cannot, is on How a claim moves through its lifecycle.

"Approver must differ from submitter (separation of duties)."

Working as designed. Approving refuses when the approving person is the same as the submitting person.

Have a different person approve. This is the only real separation-of-duties control in the module, every other action here is open to every role from staff upward.

"Claim must be in Draft status to submit. Current status: X."

The claim has already left Draft. The certification form only appears on a Draft, so this normally means two people acted at once.

Reload the page. If the claim is Submitted, it is with an approver.

"Submission deadline (yyyy-MM-dd) has passed. A late submission exception is required."

Today is past the claim's deadline, the last day of the claim month plus 60 days, and no late exception has been approved.

Not fixable from the screen. Nothing in PTRS can ever approve that exception, so once the 60 days pass, the claim can never be submitted.

There is no Amend button on an approved claim

Amending a claim has no screen. No screen offers it.

Not fixable from the screen.

The claim's Grand Total is $0.00 and there are no line items

Nothing in PTRS ever creates a claim line item, and nothing ever adds up a claim's own total. Every claim's totals are zero.

Not fixable from the screen. See The reimbursement arithmetic.

A claim's status will not move to Under Review or Paid

Nothing anywhere in PTRS ever sets either status, although both appear in the status filter.

Not fixable from the screen.

A number does not look right

"Est. Reimbursement, $0.00" with meals recorded

Two independent reasons. The calculation adds up only meal records that are marked valid, and nothing ever marks one. And it multiplies by the reimbursement rate table, which is empty in every copy of PTRS, a missing rate is silently priced at zero.

Not fixable from the screen. Do not quote this figure in either direction.

"Valid Rate, 0%" in amber, and "Validated, 0 / N"

The same reason. No meal record is ever marked valid, by any of the four screens that try to save one. The amber colour is the panel's below-90% styling, not a warning about your site.

Not fixable from the screen. The red cross on a meal record means not validated, not non-compliant.

The "Needs Attention" tab contains every record ever

It shows every record that is not marked valid, and no record ever is.

Not fixable from the screen. Use This Week or the date navigator instead.

The daily breakdown shows a cross on every row

Same reason as above.

"No rates configured." on Reimbursement Rates

Nothing in the interface can load a rate, every action that could write one has no screen. There is no button anywhere that does it.

Not fixable from the screen. Rates can only be loaded through direct system access. The page also works out the fiscal year in your browser as running October to October, and fixes the programme to ARAS, so a Summer Food site would see nothing even with rates loaded.

The rate schedule is empty from 1 October

The page works out the fiscal year from your device's own clock, and from October onward that gives the next fiscal year's label, one both rate tables built into PTRS do not carry.

Not fixable from the screen.

Allergy alerts show children who are not at this site

Looking up a site's meal records returns allergy alerts for the whole organisation, not just the site you asked about.

Not fixable from the screen. Treat the list as organisation-wide.

The meal-period cards show service times my site does not use

The five times shown are the same for every site, every day of the week and every season, they are not read from your site's own settings. PTRS can hold a service window for each site and meal type, and this page does not read it.

Not fixable from the screen. Do not treat these as your approved service window.

The revenue forecast tiles or the trends table are blank or the page errors

Claim History & Analytics reads figures under names PTRS does not send. Today both data sets are empty, no claim exists, so both empty states render correctly. The first trend row that ever exists will take the page into an error, because the page tries to format a value that is not there.

Not fixable from the screen.

"No consolidated claim data available."

Creating a consolidated claim has no screen. Nothing in PTRS can create one, so the list is permanently empty. The page is also absent from the sidebar and reachable only by typing its web address.

Not fixable from the screen.

The "Inactive" tile on Enrollment Summary is always 0

It is worked out in the browser as total minus active, and every enrolment in PTRS is Active. Creating one always writes that status, and the two actions that would write any other status have no screen.

The same fact makes the list's status filter half-decorative: Active matches everything, Inactive and Withdrawn match nothing.

Not fixable from the screen.

Free + Reduced + Paid does not add up to the Active count

Active is PTRS's own true count. The tier line beneath it is counted in the browser from only the first 25 active enrolments. At a site with more than 25 active participants, the three tier numbers sum to 25.

The counting also treats anything that is neither Free nor Reduced as Paid.

Not fixable from the screen. There is no way to see a true count by tier and no way to export the list. Treat the three numbers as a sample of the 25 most recently enrolled.

The enrolment list shows participants from other sites

The enrolment screen resolves its site from the header's site selector, falling back to your first assigned site. If neither resolves, it sends nothing, and the list and its summary widen to the whole organisation.

Pick a site in the header's site selector and reload.

Buy American Compliance Rate reads 0.0% and every row says "Domestic: Yes"

The tile counts a compliance flag that is a different field from the Domestic Product checkbox. It is copied exactly as sent, never worked out from the domestic tick or the country of origin, and the browser never sends it. So it is false on every record and the rate is structurally zero.

Not fixable from the screen. Do not report this percentage.

The fiscal year on Buy American Compliance is a year behind after 1 October

The page works out the fiscal year as the calendar year and labels it "FY." The federal fiscal year begins 1 October, so from October to December the page asks for and reports the previous fiscal year. A tab left open across 31 December keeps the old value.

Reload the tab to refresh the year. There is no year selector, so a record filed in October cannot be listed under the correct fiscal year from this screen.

A menu template shows a green tick and "Meets meal pattern requirements"

The tick reflects a status the template's creator supplied. No meal-pattern check ever runs on a template, not on create, not on clone, not on read.

Treat the tick as an unverified label. The only screen where a real meal pattern verdict is produced is the meal composer; see Read the CACFP meal service screens.

Low Stock and the FIFO queue disagree with the full inventory

The inventory screen asks for the item list with no paging, so PTRS's default limit of 25 applies. Both panels are computed from those 25 rows in the browser, and the FIFO panel then shows only the first 20 of them without saying so.

Not fixable from the screen, the page has no pager. Both panels are summaries of one page, not of the site.

"Failed to create cycle menu" on Cycle Menu Planning

PTRS requires knowing who created the menu, and neither the form nor the page sends it, so the value arrives blank and PTRS refuses before it looks any further.

Two further values would fail even with that fixed: the form sends "CACFP" where PTRS expects ARAS or SFSP, and "All" where PTRS expects a different pair of words for its site scope.

Not fixable from the screen. See Work the menu and food screens.

PTRS requires a pre-check status the form does not collect and does not send at all.

Not fixable from the screen.

"Invalid prep complexity: Medium."

The Prep Complexity dropdown offers Low, Medium and High. PTRS's own four values are named differently and share no overlap with those three.

Not fixable from the screen. Every value the dropdown can produce is rejected.

"Failed to record transaction" on Inventory Management

The page adds a blank value for who transacted it, and PTRS requires a real one.

Not fixable from the screen. There is also nothing to transact against, no screen creates an inventory lot.

"Failed to create vendor" on Procurement & Vendors

The page adds a blank site, and PTRS requires a real one.

Not fixable from the screen.

"Failed to create purchase order" on Procurement & Vendors

Two independent reasons. The page adds a blank site, and separately sends a total amount of zero, which PTRS refuses outright. The form has no amount field for you to fill in.

Not fixable from the screen.

"Invalid procurement method: FormalBid." or "…: SoleSource."

The dropdown offers four choices, and two of them are not values PTRS recognises; two values PTRS does recognise are not offered by the dropdown at all.

Pick Micro-Purchase or Small Purchase, those two are valid. The order will still fail for the reasons above.

"A vendor with Tax ID '…' already exists."

PTRS refuses a tax id already used by another vendor in your organisation, including a deactivated one, deactivating a vendor hides it from use without removing the record.

Find the existing vendor and reactivate or edit it, except that updating and reactivating a vendor both have no screen either.

"Failed to create record" on Buy American Compliance

The page starts the site and food item fields blank, and the form has no control for either. Both are required.

Not fixable from the screen.

"Failed to create meal substitution" on Special Dietary Accommodations

The page adds a blank site and a blank meal record. Both are required.

Not fixable from the screen. See Work the special dietary screen.

"Invalid substitution basis: Medical."

The dropdown offers Medical, Disability, Religious and Other. PTRS's own three values are named differently. There is no overlap, all four choices are refused.

Not fixable from the screen.

"Insufficient inventory" on a transfer, waste or issue

This one is working as designed. A transfer or a waste is refused when it would take a single lot's balance below zero; an issue is refused when the total across every lot of that food item at that site is less than what you asked for. The message names both the amount requested and what is available.

Reduce the quantity, or record a receipt first.

"No food items found." on Food Item Catalog

Adding a food item has no screen anywhere, and PTRS starts with none built in. The table is empty in every copy of PTRS.

Not fixable from the screen. This is also why the meal pattern check reports every menu item as not found in the food catalogue; see What makes a meal reimbursable.

"No meal pattern rule sets configured."

Two independent reasons, and fixing either alone changes nothing. The page expects a different shape of response than PTRS sends, so it always treats the list as empty. And even a rule set that arrived would show "Components (0 rules)," because the list PTRS builds leaves the actual rules out.

Underneath both: the rules are given to PTRS only in its development setting, for one fixed organisation.

Not fixable from the screen.

The Age Group Mappings table is missing

The section only shows once there is something to show, and PTRS only builds in these mappings in its development setting. In staging, production and an installed copy the table is empty and the section does not appear.

Not fixable from the screen. The six mappings are printed on What makes a meal reimbursable.

A cycle menu exists but has no meals on any day

Creating a cycle menu makes one empty day per day of the cycle. The meals that would fill them have no path anywhere in PTRS that creates one.

Not fixable from the screen. A cycle menu is a name, a date range and a grid of empty days.

"No inventory items found." and "No items in FIFO queue."

Creating an inventory lot is the only way to add one, and it is built with no screen calling it.

Not fixable from the screen.

The four tiles at the top of Inventory Management never appear

The page asks for the inventory summary for "every site," which PTRS refuses outright, so the tile block, which only shows once the summary arrives, never appears.

That failure is protecting the page: the block reads figures under names PTRS does not send, and would otherwise take the page into an error the moment it tried.

Not fixable from the screen.

The Food Item column on Inventory Management shows a long code

The inventory tables show the food item's own id, because PTRS's response carries no name for it and the page does not look one up.

Not fixable from the screen. Match the code against Food Item Catalog, which is itself always empty.

"No inventory data available." on Multi-Site Inventory

PTRS lists every site in your organisation and fills in stock counts beside each, so a site with no stock still appears as a row of zeros. This message appears only when the organisation has no sites at all.

Add a site, see Add a site. If sites exist and you still see this, the request itself failed.

The Total Budget tile is missing on Procurement & Vendors

The tile only shows once a total budget figure arrives, and PTRS's response has no such figure, there is no budget anywhere in the CACFP module for it to hold.

Not fixable from the screen. Total Spent and Pending are named correctly and work.

"No Buy American records found for FY …"

The create form on the same page always fails, so no record can exist. The year in the message is also a calendar year; see above.

Not fixable from the screen.

I cannot find the Buy American screen in the menu

This screen appears nowhere in the sidebar and nothing in PTRS links to it.

Type its web address directly. It is a real page, and every write on it fails.

The Substitution History table is always empty

The only thing that could write to it is the form above it, and that form always fails.

Not fixable from the screen.

There is no medical statement or emergency protocol screen

A physician's dietary statement and an allergy emergency protocol are both built completely, and none of the ten actions behind them has a screen. The subtitle on Special Dietary Accommodations promises medical statements and the page shows nothing for them.

Not fixable from the screen. The only allergy information you can reach is the cross-reference panel, which shows an allergen name and no severity, response steps or medication location.

A child with a known allergy is missing from the cross-reference

The panel only shows children with an active CACFP enrolment. A child with an allergy on record but no CACFP enrolment does not appear, and neither does one whose allergy is not on their member record.

Check the child's allergy record, then check they have an active CACFP enrolment, see Enrol a participant.

Nothing is wrong, but nothing appears

"Failed to load reconciliation data. Please try again later."

Attendance-Meal Reconciliation sends "every site" as the site, and PTRS requires one real site, so the request is refused before PTRS reads any of it. The page has no site picker.

Not fixable from the screen. Run Reconciliation fails the same way.

"No reconciliation data for this period."

The same failure, or, if the site were named correctly, the fact that nothing ever runs reconciliation. The nightly reconciliation task is built and never put on a schedule, so it has never run.

Not fixable from the screen.

"Daily Meal Roster" lists meal types instead of children

The panel shows the day summary, not the roster. The real per-child roster has no screen, and it reads a table nothing ever writes to.

Not fixable from the screen. PTRS holds no per-child meal record of any kind.

The Daily Limits panel shows no usage

The panel shows the site's configured ceilings, real, and no count against them, because the Delaware daily limit calculation is never called by anything, and the log it would fill in is empty. The subtitle promises "real-time daily limit status."

Not fixable from the screen. Do your own daily-limit check for children attending more than one site. See the Delaware daily limit.

"No daily limit configuration found."

The request itself returned nothing at all. Normally PTRS returns the 2 / 2 / 3 defaults even with no configuration, so this means the request failed, most often no site selected.

Select a site in the header. If the panel still says this, your role does not have access to CACFP.

The validation results block never appears on a meal record detail page

The block only shows once PTRS has stored a check result, and nothing in PTRS ever stores one. The meal pattern check runs and its verdict is shown once and discarded.

Not fixable from the screen.

The Meals page takes a long time to load

Looking up a site's meal records returns every meal record ever recorded for the site, with no date limit and no paging. A site running five meal periods a day for three years returns roughly 5,400 rows on every visit.

Not fixable from the screen.

"No DENARS packages generated yet."

Generating a package is the only way to create one, and both places that call it send a request PTRS cannot read, see below. So no package has ever been created.

Not fixable from the screen.

"Failed to generate package" on Recordkeeping & Document Retention

All three buttons ask for "every site" where PTRS needs one, and send the programme year as a number where PTRS expects text. PTRS refuses before any of its usual checks even run.

Two further mismatches sit behind that one: PTRS only recognises four kinds of package, so Review Package and Audit Package name kinds that do not exist.

Not fixable from the screen. The same failure affects the generator form on the Review Readiness screen.

A DENARS package row says "Generated" but there is nothing to download

Generating a package records that one was asked for, marks it Generated, and stores no document with it. Nothing in PTRS assembles that document, no scheduled task, no service, nothing behind the button produces a file. The download link has no screen either.

Assemble review documentation outside PTRS.

"No entries in the offline queue."

Nothing in PTRS writes to the queue. Uploading a batch of offline entries is its only writer, and nothing anywhere calls it. The parts of PTRS that let you keep working offline only remember what you already loaded, for a while; they do not queue a failed save for later.

Take counts on paper when the site is offline and enter them afterwards through the header's + → Meal Count dialog.

The offline page says "Offline" while everything is working

The pill reads a figure PTRS's response does not actually send under that name, so it behaves backwards: it reads Offline when a request to check succeeds, and Online when it fails.

Ignore the pill.

"Failed" and "Conflicts" on the Sync Status panel are blank

The panel reads figures under names that do not match what PTRS actually sends. Only the queue depth lines up, so the other two counters render empty and Last Sync reads "Never."

Even with matching names the numbers would be zero: the failed and conflict sync states have no writer anywhere.

Not fixable from the screen.

"No recent background jobs." on the Real-Time Feed

The table meant to hold a record of every scheduled task PTRS runs has no writer anywhere, none of the twelve scheduled tasks logs into it.

Check job execution with whoever looks after PTRS for your organisation.

The Real-Time Feed never shows a meal count

The page connects to PTRS's dashboard notification channel, which is switched on, and the connection is genuine. But nothing in CACFP announces on that channel, meal-record events are announced on a separate CACFP channel that PTRS never switches on.

Three event types can reach this page: a check-in, a check-out and an OCCL deadline warning. Not fixable from the screen. Reload Meal Records for the date instead.

An enrolment will not do what I expect

"Member with ID '…' was not found."

The Member ID box on the enrolment form is free text with no picker. PTRS requires the id to exist in your organisation.

Open the child in PTRS and copy the id from the web address, it is the last part of it.

The Create Enrollment request fails and no field is flagged

The page resolves its site from the header's site selector, falling back to your first assigned site. If neither resolves, it sends nothing, and PTRS refuses the request before any of its usual messages can appear.

Pick a site in the header's site selector and reopen the form.

"Program year must be in YYYY-YYYY format."

Both your browser and PTRS require exactly that shape.

The field starts on the fixed value 2025-2026, written into the page itself, which does not roll over with the calendar. Nothing checks the value beyond its shape, 2026-2026 is accepted.

Type the correct program year. Check it before saving: it is part of what makes the enrolment unique.

"An active enrollment already exists for member '…' at this location, program type, and program year."

One active enrolment per child, site, programme and program year, enforced by PTRS itself.

If the existing enrolment is correct, nothing needs doing. If it is wrong, it cannot be corrected, see below.

I cannot change a participant's eligibility tier

Changing an enrolment's tier or status works, and has no screen anywhere in PTRS calling it.

Not fixable from the screen. The tier chosen when the enrolment was created is permanent. Keep the paper determination that supports it.

I cannot withdraw a participant

Withdrawing a participant is built completely, and no screen calls it. There is no way to delete an enrolment either.

Not fixable from the screen. The enrolment stays Active and keeps counting toward the two claim checks that count active enrolments.

Clicking an enrolment row does nothing

The enrolment list's rows are not wired to a click on this screen.

Reach the detail page by typing its web address directly, with the enrolment's own id. Nothing in PTRS links to it.

"Enrollment not found." on the detail page

One message covers four situations: a malformed id, an id that does not exist, an enrolment belonging to another organisation, and a removed row.

Check the id against the list on the enrolment screen.

The enrolment detail page shows only four fields

Withdrawn, Carryover Expiration and Age Group only show once there is something to show, and all three have no reachable writer anywhere. So the page always shows Status, Eligibility Tier, Determination Method and Enrolled, and nothing else.

Not fixable from the screen. Those three are not recorded by PTRS.

Eligibility does not appear anywhere

"Area Eligibility Not Configured" and there is no way to configure it

The card shows this whenever the request fails, returns nothing, or was never made because no site resolved. Recording a site's area eligibility is a complete, working action with no screen calling it anywhere. The same is true of updating a record, the expiring-sites list and the organisation-wide summary.

Pick a site in the header first, in case the request was simply skipped. Otherwise, the record can only be created through direct system access.

The area-eligibility card is red

The record's free/reduced percentage is below 50%. That state can only arise one way: creating a record refuses to save a failing one, but updating an existing record recomputes the percentage from new counts without checking the threshold again.

Not fixable from the screen, updating has no screen either. The card also does not show the expiry date, so a green card is not evidence that the certification is current.

"Free/reduced percentage 42.0% does not meet the 50% threshold."

PTRS works out the percentage as the free/reduced count divided by total enrolled students, and refuses to save anything below 50%, or, for a Community Eligibility school, an identified-student percentage whose 1.6 multiple does not reach 50.

A consequence worth knowing: a site that was assessed and did not qualify cannot be recorded at all.

Check the counts. If the site genuinely does not qualify, document that outside PTRS.

There is no screen for income applications

All five income-application actions work. Most have the plumbing a screen would need, and not one has a screen using it. There is no page, no dialog and no menu entry.

The household income application is the only place PTRS computes an eligibility tier from data.

Not fixable from the screen. The tier on an enrolment is typed by hand, see How a participant becomes eligible.

"Invalid verification outcome: Non-Responsive."

The check that runs first accepts this spelling, and PTRS's own list of outcomes does not define it, its fourth outcome is spelled differently. The value passes the check and then fails once PTRS tries to use it.

Not fixable from the screen. See the next entry, the correct value is rejected by the check, so the outcome cannot be recorded by any input.

"Outcome must be one of: Confirmed, Tier Changed, No Longer Eligible, Non-Responsive."

You sent the real outcome PTRS actually stores. The check does not accept it.

Not fixable from the screen. Record a non-responding household outside PTRS.

"Income application '…' has already been processed."

Approving and denying both require it to be Pending. Once it is Approved or Denied, neither will touch it again, and there is no way to reopen it.

Not fixable from the screen. An approval cannot be reversed and a denial cannot be appealed through PTRS.

"Income application '…' must be Approved to create a verification."

Requesting a verification requires that application's status to be Approved.

Approve it first, through direct system access. There is no screen for either step.

A food safety or compliance record will not save

"Failed to create temperature log. Please try again."

The Log Type dropdown offers five values and PTRS only defines two, Receiving and Meal Service. The other three are refused by name.

Choose Receiving. It is the only option that saves. There is no way to create a meal-service temperature log from this screen.

"Failed to create production record. Please try again."

The form sends an all-zero meal record id, and PTRS requires a real one. There is no meal record picker, so there is nothing to change. A second failure sits behind it: the free-text Staff ID box is sent straight through, so anything that is not shaped like a real id fails before PTRS even checks it.

Not fixable from the screen. A production record cannot be created from this form. Keep it outside PTRS.

"Failed to create service window" on Vended Meal Management

The form starts with "every site" as its site, and the form has no site field, so an invalid value reaches a field PTRS requires to be a real site.

Not fixable from the screen. And note that nothing outside this one screen reads a meal service window, so configuring one would change no behaviour elsewhere.

"Failed to create corrective action plan"

Five independent failures, in the order PTRS hits them:

  1. A blank site, the form has no site field.
  2. A blank responsible staff member, the form has no staff field.
  3. Source Type starts on an unselected option, which PTRS refuses.
  4. Of the four Source Type choices, only Self-Audit is one PTRS recognises.
  5. None of Minor, Major or Critical is a severity PTRS recognises, its three are Observation, Finding and Serious Deficiency.

Not fixable from the screen. The form cannot save under any combination of inputs.

"Failed to create self-audit"

The form starts with a blank site, and collects a date, a program year and a period instead.

Not fixable from the screen. Selecting a site in the header does not help; this page never reads it.

"Failed to generate DENARS package" on Review Readiness

The page sends "every site" where PTRS needs one, and a comma-joined list of the eight selected category labels as the package type. Identical to the three buttons on Recordkeeping & Document Retention.

Not fixable from the screen. And when this action does run, it writes a row marked Generated and produces no file, see Read the records and offline screens.

A finding category I typed is rejected

The Finding Category box is free text, and PTRS matches it against a fixed list of names with no spaces. The box's own example placeholder is rejected, because it has a space where PTRS's stored name does not.

Type the name without spaces. The form will still fail for the four other reasons above.

Operations and compliance screens show nothing

"No temperature logs found." after I created a log

The list shows readings, not logs. A log created through the form has no readings, and nothing in PTRS can add one, adding a reading is built with no screen calling it, and there is no reading form anywhere.

Not fixable from the screen. The log header is stored and the readings are not.

The temperature list has no column headings

The row is built without a proper table around it, so the six values appear in order with nothing labelling them: food item, temperature, type, in-range mark, corrective action, timestamp.

Not fixable from the screen. Read them in that order.

"No service windows configured." however many I create

The list request sends "every site," which PTRS refuses outright rather than with a helpful message. The same request also drives the "Failed to load vended meal data" banner.

Not fixable from the screen.

The four configuration tiles on Vended Meal Management never appear

The tile block only shows once configuration data arrives, and that request fails for the same reason as above. There is no error state for it, so the tiles are simply absent.

Not fixable from the screen.

The FNS-101 breakdown table is missing

The table only shows once a breakdown figure arrives, and PTRS's response has no such figure, it returns nine plain counts, one per reporting category, under a different shape entirely. Nothing renders and no error appears.

Not fixable from the screen. The two tiles above it, Total Participants and Program Year, are correct.

Display Location is blank on every poster row

The page reads a figure under a name that does not match what PTRS sends.

Not fixable from the screen.

Method is blank on every civil rights training row

Same reason as above, for a different field.

Every site card under Food Safety Certs is red

The grid reads figures under names that do not match what PTRS sends. The first one is always blank, which reads as false, so every card shows "No food safety certification", including a site with several current certificates.

Read the certification table above the grid instead. It is correct.

The Dashboard tab on CACFP Training & Staff Management is empty

The four tiles above the tabs are the real dashboard, shown regardless of which tab is picked. The tab body's own Dashboard section only shows a loading message while data is missing, and shows nothing once it has loaded.

The tiles above the tabs are the dashboard.

The Staff Member column on Annual Training Calendar shows a long code

The page shows the staff member's own id, because PTRS's response carries no name for it and the page does not look one up.

Not fixable from the screen.

"No readiness data available." and "No compliance data available."

Review Readiness sends "every site" for both requests, and PTRS refuses outright rather than with a helpful message. The failure banner above them comes from the same request.

Not fixable from the screen. Both calculations behind this page work, nineteen checks in eight categories, and a weighted score whose weights sum to exactly 1.00. See What a CACFP review asks for.

Clicking a corrective action card leads nowhere

The card links to a detail page that does not exist for corrective action plans.

Not fixable from the screen. There is no detail view for a corrective action plan.

There is no site monitoring screen

Seven actions, creating, listing, looking up, updating and appending to a monitoring review, plus claim-accuracy and overclaim-detection, are all built completely and none has a screen. There is no monitoring page in the sidebar, and the screen pieces built for it are used by nothing.

Not fixable from the screen.

There is no program calendar screen

All five program-calendar actions have the plumbing a screen would need, and none has one. The screen pieces built for it are used by nothing, and there is no page.

Not fixable from the screen.

Vended Meal Management is not in the menu

The sidebar lists eight of the nine operations screens. This one is not among them, exactly as Buy American Compliance is not.

Type its web address directly. The screen cannot save or load anything once you get there.

I cannot attach a document to any CACFP record

Uploading, listing, downloading and deleting a document all have no screen. Nothing in PTRS can attach a document to a CACFP record.

Not fixable from the screen. It is also why Administrative Records scores 0 of 1 on the readiness assessment in every copy of PTRS.

An operations number does not look right

The Compliance Rate on CACFP Training & Staff Management reads 0.0%

The rate counts role assignments marked Authorized, not training records. Every new assignment starts Unauthorized, and neither creating one nor authorizing one has a screen. In a database whose assignments were not entered by hand, the top of the fraction is zero.

Not fixable from the screen, and do not quote the figure as a training compliance rate. It does not measure training.

The training figures are all zero and I know we have records

All three screens work out the program year as the current calendar year and the next. A CACFP program year runs 1 October to 30 September, so from January to September the pages ask for a program year that has not started.

Not fixable from the screen. Ask whoever looks after PTRS to query the correct program year directly.

Selecting Completed in the corrective action filter shows every plan

The status filter only applies when the value it is given is one PTRS recognises. Completed is not one of PTRS's own statuses, so the filter is silently skipped and every plan is returned, the opposite of what the label implies.

Use Open, In Progress or Overdue, which are real statuses. Pending Verification, Verified and Closed are also real and are not offered.

Every severity chip and some status badges are grey

The chip only has colours for Low, Medium, High and Critical; PTRS's own three severities are named differently, with no overlap, so every severity falls through to grey. The status badge has the same mismatch for one of its statuses and is missing two others that are real.

Read the text in the chip, not its colour.

Every self-audit reads "Needs Attention" and "Complete: No"

Those are the values PTRS assigns on creation. The only action that changes either has no screen calling it.

Not fixable from the screen. A self-audit cannot be worked through in PTRS.

Every corrective action plan reads "Open"

Open is the default on creation, and the two actions that change the status both have no screen calling them. Overdue is meant to be applied automatically on a schedule, and CACFP schedules no such task, the "(Overdue)" text on a card is worked out in the browser and does not change the stored status.

Not fixable from the screen.

The Leftover tile on a production record does not match the record

The panel computes its own figure from two other totals rather than reading the leftover total PTRS stores, which has no writer anywhere and is permanently zero, as is the non-reimbursable total.

The panel is on no page, so you will not see this in normal use.

A production record's review status never changes

The only screen piece for reviewing a production record is imported by no page. If it were reachable, both of its buttons would fail: they send a blank reviewer, and Reject sends a status PTRS does not define.

Not fixable from the screen. Every production record stays Pending Review.

Certifying the annual complaint log reports zero complaints

The action compares a four-digit calendar year against the nine-character program year every screen sends. The two never match.

Not fixable from the screen, and this action has no screen calling it anyway.

A food safety certificate never shows "Pending Renewal"

PTRS's automatic status calculation only ever sets Expired, Expiring Soon (within 90 days) or Current. The fourth status is set only by a separate action that nothing anywhere calls.

Not fixable from the screen.

Nothing warned me before a certificate or training expired

The alert record built for this, seven kinds, including 30-, 14- and 7-day reminders, has no reader and no writer anywhere in PTRS. It is meant to be generated on a schedule, and CACFP schedules no such task. And PTRS has never sent a notification by any path.

The Expiring in 30 Days tile on CACFP Training & Staff Management is the only expiry signal, someone has to open it to see it, and it is filtered on a program year the page computes wrongly for nine months of the year.

Permissions

I can see the CACFP menu but every page is empty or errors

The sidebar applies no role check anywhere in PTRS, so every signed-in user sees every CACFP entry. Behind the screen, PTRS requires a role of staff member or above. A guardian, a read-only account or an OCCL auditor reaches the pages and every request behind them is refused.

Not fixable from the screen. The module is not available to those roles.

I am a Staff user and there is no Create New Claim, Approve or Reject button

Those three controls are shown only to a site director and above.

Note that this is a menu choice, not a real control. PTRS accepts the same actions from a staff member's own account. This is the largest separation-of-duties gap in PTRS, and it is recorded for the PTRS team.

Ask a site director or above to perform the action, which is the intended workflow.

"Organization context is required."

Every CACFP action requires your account to belong to an organisation, and refuses without one. It usually means your account information has not finished loading, or your user has no organisation on record.

Reload. If it persists, your user record needs an organisation added, an administrator task.

Checked against PTRS on 7 September 2026.