Skip to content

TMHP Response Staging Alerts

Procedures for investigating alerts fired by the TMHP response staging monitor. The alert fires when C:\HISD_TMHP\ResponseStaging on the TMHP SFTP VM (vm-tmhp-sftp-prod-cus) exceeds 500 files or when BID files are older than 6 hours with no corresponding 271.

Background: File Types

TMHP uses X12 EDI batch processing. For every 270 (eligibility inquiry) batch submitted, TMHP returns responses in stages:

ExtensionNameMeaning
.BIDBatch IDTMHP received the file — processing has started
.999Implementation AcknowledgementEDI interchange accepted or rejected
.824Application AdviceBusiness-level acknowledgement
.271Eligibility ResponseActual eligibility results — what HISD needs

All four are normal. A healthy batch produces all four. Files accumulate in ResponseStaging until the HISD background service processes them.

Step 1: Check File Counts

RDP into vm-tmhp-sftp-prod-cus, open PowerShell:

Terminal window
Get-ChildItem "C:\HISD_TMHP\ResponseStaging" | Group-Object Extension | Select-Object Name, Count | Sort-Object Count -Descending

Expected healthy output: roughly equal counts of .999, .824, and .271, with a smaller number of .BID still in flight.

Step 2: Check 999s for Rejections

IK5*A and AK9*A mean accepted — this is normal. Only act if you see IK5*R or IK5*E:

Terminal window
Get-Content "C:\HISD_TMHP\ResponseStaging\*.999" | Select-String "IK5\*R|IK5\*E" | Select-Object -First 10

If rejections are present, the 270 file format is invalid. Check the HISD EligibilityRequestSubmissionJob for errors and review the outbound file format.

Step 3: Check 824s for Application Errors

OTI*TA means accepted — normal. Only act if you see OTI*TR (rejected):

Terminal window
Get-Content "C:\HISD_TMHP\ResponseStaging\*.824" | Select-String "OTI\*TR" | Select-Object -First 10

If rejections are present, TMHP is accepting the EDI format but rejecting the business content (bad NPI, invalid submitter ID, etc.). Check the TED segment for the error description.

Step 4: Check BID Age and Environment

Terminal window
Get-ChildItem "C:\HISD_TMHP\ResponseStaging\*.BID" | Select-Object Name, LastWriteTime | Sort-Object LastWriteTime

Key things to look for:

  • Environment: filenames end in _PROD, _UAT, or _REGRESSION. Only PROD BIDs require urgent follow-up.
  • Age: BIDs older than 12 hours with no 271 response warrant a TMHP support call. BIDs under 6 hours are normal processing lag.

Step 5: Check the Service Logs

If 271s are returning but not being processed (file counts keep growing):

Terminal window
Get-ChildItem "C:\HISD_TMHP\ServiceLogFile\" | Sort-Object LastWriteTime -Descending | Select-Object -First 5
Get-Content "C:\HISD_TMHP\ServiceLogFile\<most-recent-log>" -Tail 100

Check C:\HISD_TMHP\UnidentifiedResponse\ — files here mean the service ran but couldn’t match the response to a submitted batch:

Terminal window
Get-ChildItem "C:\HISD_TMHP\UnidentifiedResponse\" | Measure-Object

Step 6: Check TMHP SFTP Directly

If no 271s are returning at all, verify TMHP’s /download/batch directory directly using WinSCP or the test tool in C:\HISD_TMHP\Tools\TmhpFtpTest\. Empty download directory + BIDs present = TMHP processing delay or IP whitelist issue.

Alert Threshold

The 500-file threshold is intentionally low — it fires early rather than late. In normal operation across PROD + UAT + REGRESSION environments, the staging folder accumulates files quickly. A firing alert does not mean something is broken — follow steps 1–3 to confirm file types are healthy before escalating.

To adjust the threshold, update the monitor configuration in the HISD application settings.

Escalation

ConditionAction
PROD BIDs > 12h with no 271Call TMHP EDI support, reference submitter ID 146176501
999s showing IK5*RHISD dev team — format issue in 270 generation
824s showing OTI*TRHISD dev team + TMHP — business rule rejection
271s returning but not processedHISD dev team — service processing failure
SFTP unreachableCheck VM network, VPN, and TMHP IP whitelist status

Change Log

DateChangeBy
2026-06-02Initial runbookLeon Geldenhuys