This is a ready-to-use form. Replace every <<FILL: ...>> placeholder with your own specifics, set your document numbers and dates, and route it through your normal document control, review, and approval. A worked filled specimen follows the template so you can see how a completed version reads. Verify each cited regulation against the current source before you rely on it.
Complete this form when an interface or integration test fails and it is not immediately clear which system, or which vendor’s component, caused the failure. One form covers one interface failure. It is a companion to Test Script: Interface and Integration, which executes the test, and to Test Failure Scope and Impact Assessment, which this form feeds once fault is isolated or the dispute is documented. See Managing test failures during validation for the full disposition logic this form supports.
Why this form exists
An interface connects two systems, so an interface failure always has at least two plausible owners, and sometimes a third if a vendor-supplied middleware component sits between them. The instinct on each side of that boundary is to check its own logic, confirm it looks correct, and conclude the problem is on the other side. Both sides can honestly believe that and both cannot be right, and sometimes neither is: the fault sits in the transport or the mapping between them.
This form forces the isolation question to be answered from boundary-level evidence, pulled from each side independently, before anyone’s explanation is accepted. Where a vendor is involved and disagrees with the finding, it records both positions and the evidence behind each, so the record does not quietly adopt whichever explanation arrived first. It also keeps the one fact that survives any fault argument in view: the interface failed its acceptance criterion during validation, and that has to be dispositioned no matter who is ultimately responsible.
Field table
| # | Field | Format | Required | Who completes | When |
|---|---|---|---|---|---|
| 1 | Fault isolation number | Text | Yes | Validation lead | On raising |
| 2 | Test incident / deviation number | Text | Yes | Validation lead | On raising |
| 3 | Interface description (section 2) | Free text | Yes | Validation lead with SME | On raising |
| 4 | Boundary-level evidence, each side (section 3) | Table | Yes | SME for each system | Before isolation conclusion |
| 5 | Fault isolation finding (section 4) | Free text plus table | Yes | SME, both sides where possible | On conclusion |
| 6 | Vendor position and dispute record (section 5) | Table | Conditional, where a vendor disputes | Vendor liaison | When raised |
| 7 | Classification (section 6) | Per the article’s classification logic | Yes | Validation lead, QA confirms | On conclusion |
| 8 | Interim control / risk acceptance (section 7) | Table | Conditional, if going live before resolution | System owner, QA | Before go-live if applicable |
| 9 | Required actions and retest (section 8) | Table | Yes | Validation lead | On conclusion |
| 10 | Approvals (section 10) | Names, signatures, dates | Yes | Per section 10 | Before closure |
1. Header
| Field | Entry |
|---|---|
| Fault isolation number | <<FILL: FI-ID, e.g. FI-LIMS-MID-004>> |
| Test incident / deviation number | <<FILL>> |
| System A (name, owner) | <<FILL>> |
| System B (name, owner) | <<FILL>> |
| Middleware / transport layer, if any (name, owner) | <<FILL: or "none, direct interface">> |
| Vendor(s) involved | <<FILL: name each vendor and which component they supply>> |
| Interface specification reference | <<FILL: document number and version>> |
| Protocol and test case/step | <<FILL>> |
| Date raised | <<FILL>> |
| Assessment owner (name, role) | <<FILL>> |
2. The interface and the failure
| Field | Entry |
|---|---|
| What the interface is supposed to do | <<FILL: the data moved, the direction, the trigger, the expected transformation>> |
| What was observed | <<FILL: the factual description of the failure, same observation captured in the original test incident>> |
| Which side first noticed the discrepancy | <<FILL>> |
| Initial, unverified explanation offered by each side (if any) | <<FILL: record even an informal "probably a mapping issue on your end" remark, with who said it and when>> |
Record the initial explanations here specifically because they are not yet evidence. The point of the next section is to replace them with something checked.
3. Boundary-level evidence (both sides independently)
Pull the transaction as it existed at each side of the boundary, before either system’s business logic has touched it. A finished screen or report in System B tells you what System B did with the data, not what it received.
| Field | System A (sending/upstream) | System B (receiving/downstream) |
|---|---|---|
| Evidence source | <<FILL: outbound log, message queue entry, export file>> | <<FILL: inbound log, staging table, raw transaction record>> |
| Timestamp of the transaction in question | <<FILL>> | <<FILL>> |
| Record/value as captured at the boundary | <<FILL: exact field values, not a summary>> | <<FILL: exact field values, not a summary>> |
| Does the boundary record match the interface specification’s expected format? | Yes / No, detail <<FILL>> | Yes / No, detail <<FILL>> |
| Who pulled this evidence, and how | <<FILL>> | <<FILL>> |
| Field | Entry |
|---|---|
| Does the value that left System A match the value that arrived at System B? | Yes / No |
| If No, where in the path does the value change (confirmed by the boundary evidence above)? | <<FILL: at the sending system before transmission / in transit or in a middleware transform / at the receiving system after arrival but before processing>> |
| Re-test with simplified, single-field test data performed? | Yes / No. Result: <<FILL>> |
| Does the failure disappear with simplified data (points to a specific field mapping or transformation rather than a connection fault)? | Yes / No / Not tested |
4. Fault isolation finding
| Field | Entry |
|---|---|
| Fault located at | Sending system (System A) / Transport or middleware / Receiving system (System B) / Cannot be isolated from available evidence |
| Technical mechanism | <<FILL: the specific field mapping, encoding, truncation, timing, or transformation that produced the failure>> |
| Evidence supporting this location | <<FILL: reference the specific boundary evidence from section 3>> |
| Is this mechanism unique to this interface pairing, or does the same component feed other interfaces? | <<FILL>> |
| If fault cannot be isolated from available evidence | <<FILL: state what further evidence would resolve it, and from whom>> |
5. Vendor position and dispute record
Complete this section whenever a vendor’s stated position differs from the finding in section 4. Document both positions. Do not resolve a dispute by adopting either position without the evidence behind it.
| Field | Entry |
|---|---|
| Vendor’s stated position | <<FILL: quote or closely paraphrase, with date and who provided it>> |
| Evidence the vendor provided in support | <<FILL: logs, transaction IDs, timestamps from their side of the boundary, or "assurance only, no supporting evidence provided">> |
| Your team’s position (from section 4) | <<FILL>> |
| Specific point of divergence | <<FILL: the exact fact or log entry the two accounts disagree about>> |
| Independent verification attempted | <<FILL: a joint test session, a third-party log review, a repeat test with both parties observing>> |
| Resolution status | Resolved, one position confirmed by independent evidence / Resolved, shared cause found / Unresolved, documented disagreement stands |
| Escalation route and owner | <<FILL: vendor management contact, contract or quality agreement reference, assigned internal owner>> |
| Target resolution date | <<FILL>> |
Where the dispute remains unresolved at the time this form is closed, say so plainly in the conclusion (section 9). An honestly documented disagreement is a stronger record than one that quietly picks a side.
6. Classification and escalation
Apply the same classification logic used for any test failure, independent of fault attribution. Fault location affects who fixes it, not whether it escalates.
| Field | Entry |
|---|---|
| Is the interface GxP-relevant (moves a record feeding a decision, a release, or a regulated submission)? | Yes / No |
| Does the failure touch data integrity (could a dropped, altered, or duplicated record go undetected)? | Yes / No |
| Classification | System defect, high GxP impact / System defect, low GxP impact / Test-artifact or specification error / Undetermined, defaulted to system defect pending resolution |
| QA concurrence with classification | <<FILL: name, date>> |
Where fault is disputed or cannot be isolated, classify as a system defect for tracking purposes rather than leaving the item unclassified. An unclassified interface failure is the one most likely to be forgotten between quality systems.
7. Interim control / risk acceptance (if the system must go live before resolution)
| Field | Entry |
|---|---|
| Is go-live required before the fault is resolved? | Yes / No |
| Interim control defined | <<FILL: manual reconciliation step, parallel check, restriction on the affected transaction type>> |
| Residual risk statement | <<FILL>> |
| Control owner | <<FILL>> |
| Review date for the interim control | <<FILL>> |
| Approved by (system owner and QA) | <<FILL>> |
8. Required actions and retest
| # | Action | Owner (internal or vendor) | Target date | Retest required | Retest reference |
|---|---|---|---|---|---|
| 1 | <<FILL>> | <<FILL>> | <<FILL>> | Yes / No | <<FILL>> |
| 2 | <<FILL>> | <<FILL>> | <<FILL>> | <<FILL>> | <<FILL>> |
9. Conclusion
<<FILL: three to six sentences. State where the fault was isolated to and on what evidence, whether the vendor agreed or disputed it, how the interface test case is dispositioned regardless of fault attribution, and what retest or interim control follows.>>
| Field | Entry |
|---|---|
| Interface test case disposition | Remains FAIL pending correction and retest / Corrected and retest passed, reference <<FILL>> |
| Dispute status at closure | No dispute / Resolved / Unresolved, documented and tracked under <<FILL>> |
| Escalation required beyond validation? | No / Yes, to <<FILL: vendor management, contract dispute process, product impact assessment>> |
10. Approvals
| Role | Name | Signature | Date |
|---|---|---|---|
| Prepared by (validation lead) | <<FILL>> | ||
| System A SME | <<FILL>> | ||
| System B SME | <<FILL>> | ||
| Vendor liaison (where applicable) | <<FILL>> | ||
| Quality Assurance | <<FILL>> |
11. References
21 CFR 211.192, investigation of unexplained discrepancies, extended here to a discrepancy spanning two systems rather than one. 21 CFR Part 11, where the interface carries electronic records or signatures. EU GMP Annex 11, Computerised Systems (2011), on interfaces between computerized systems and the assessment of deviations found during validation. EU GMP Annex 15, Qualification and Validation (2015), on documenting and justifying deviations from the validation protocol. ICH Q9, Quality Risk Management, for the risk basis of an interim control or risk-acceptance decision.
Confirm the current version and clause numbers of each reference before issue.
Filled specimen
The following shows the form completed for an example interface failure found during OQ between a LIMS and a vendor-supplied automated microbial identification system. The company, system, and numbers are illustrative.
Header and interface
| Field | Entry |
|---|---|
| Fault isolation number | FI-LIMS-MID-004 |
| Test incident / deviation number | TI-0077 |
| System A | Automated microbial identification system, instance MID-QUAL, vendor-supplied |
| System B | LIMS, instance LIMS-QUAL, in-house configured |
| Middleware | None, direct serial-to-network interface module supplied by the MID vendor |
| Vendor(s) involved | MID Vendor (identification system and interface module) |
| Interface specification | IFS-MID-LIMS-02 v2.1 |
| Protocol and test case | OQ-MID-009 step 5, result transmission verification |
| Date raised | 18 Aug 2026 |
| Assessment owner | T. Nakamura, Validation Lead |
| Field | Entry |
|---|---|
| What the interface does | On completion of an identification run, the MID system transmits the organism identification result and confidence score to LIMS, which files it against the pending sample. |
| Observed | Of 50 identification results transmitted during OQ, 2 arrived in LIMS with a truncated organism name, missing the final 3 to 5 characters, with the confidence score intact. |
| First noticed by | LIMS reviewer, during result verification |
| Initial explanation offered | MID vendor support stated by phone on 19 Aug that “our system logs show all 50 results sent correctly, this looks like a LIMS field length issue.” |
Boundary-level evidence
| Field | System A (MID, sending) | System B (LIMS, receiving) |
|---|---|---|
| Evidence source | MID system’s internal transmission log (vendor-proprietary format, exported by vendor support) | LIMS interface staging table, raw inbound record before LIMS applies any display formatting |
| Timestamp | 18 Aug 2026, 11:14:22 and 11:52:07 | 18 Aug 2026, 11:14:23 and 11:52:08 |
| Record/value at boundary | Organism field value: “Staphylococcus epiderm” (truncated at source, per the vendor’s own transmission log) | Organism field value received: “Staphylococcus epiderm”, stored exactly as received, LIMS field length confirmed to allow 60 characters, value received used only 23 |
| Matches interface specification format? | No. IFS-MID-LIMS-02 specifies UTF-8 encoding; the two affected records were generated by the MID system in Latin-1 encoding with a multi-byte character in the organism name, which the transmission module mis-truncates when the vendor’s export routine switches encodings mid-string | Yes, LIMS received and stored exactly what arrived, with no further alteration |
| Who pulled this evidence | T. Nakamura, from the vendor-supplied export, cross-checked by A. Reyes (LIMS admin) against the LIMS staging table | A. Reyes, LIMS administrator |
| Field | Entry |
|---|---|
| Does the value that left System A match the value that arrived at System B? | Yes, the truncated value left System A already truncated; System B received and stored it faithfully |
| Where does the value change? | At the sending system (MID), before transmission, during the vendor’s internal export-encoding step |
| Simplified re-test performed? | Yes. Ten identification runs on organisms with no multi-byte characters in the name: zero truncations. Two runs repeated specifically with organism names containing a multi-byte character: both truncated identically |
| Does the failure disappear with simplified data? | Yes, confirming the mechanism is specific to multi-byte characters in the organism name field, not a general connection or mapping fault |
Fault isolation finding
| Field | Entry |
|---|---|
| Fault located at | Sending system (System A), MID vendor’s export-encoding routine |
| Technical mechanism | The MID system’s result export switches from UTF-8 to Latin-1 encoding when the organism name contains certain multi-byte characters, and the vendor’s truncation logic counts bytes rather than characters in that mode, cutting the string short |
| Evidence supporting this location | Boundary comparison in section 3: the truncated value existed at the point of transmission, before LIMS ever touched it, and the defect reproduced only with multi-byte-character organism names |
| Unique to this interface, or shared? | Shared. The same export routine feeds this vendor’s optional data-warehouse export, which was not in scope for this validation but is flagged for the system owner to check separately |
| Cannot be isolated? | N/A, isolated |
Vendor position and dispute record
| Field | Entry |
|---|---|
| Vendor’s stated position | Initially, “our system logs show all 50 results sent correctly, this looks like a LIMS field length issue” (phone call, 19 Aug, MID Vendor support tier 1) |
| Evidence vendor provided initially | None; assurance only, no log extract provided at that stage |
| Our team’s position | Fault isolated to the MID system’s export-encoding routine, per boundary evidence above |
| Specific point of divergence | Vendor’s initial claim rested on their own application log, which records the result as generated, not as transmitted; our evidence came from the transmission log itself, which the vendor’s tier 1 support had not reviewed |
| Independent verification | Escalated to MID Vendor tier 2 engineering with the transmission log and the simplified re-test results attached. Tier 2 engineering reproduced the defect in their own lab using an organism name with the same character class and confirmed the encoding switch as a known issue in the current firmware version, not previously disclosed in release notes |
| Resolution status | Resolved. Vendor confirmed the mechanism after reviewing the transmission-level evidence |
| Escalation route and owner | MID Vendor support case VMID-22841, owned by T. Nakamura internally |
| Target resolution date | Vendor firmware patch committed for 15 Sep 2026; interim control effective immediately |
Classification and escalation
| Field | Entry |
|---|---|
| GxP-relevant? | Yes, the organism identification result feeds the microbiology release decision |
| Data integrity concern? | Yes, a silently truncated organism name could be misread as a different, similarly named organism without triggering any error |
| Classification | System defect, high GxP impact |
| QA concurrence | R. Oduya, QA, 21 Aug 2026 |
Interim control
| Field | Entry |
|---|---|
| Go-live required before resolution? | No, system remains in qualification; production go-live held pending the vendor patch and re-verification |
| Interim control | For any organism identification confirmed in OQ to contain a multi-byte character in its name, the LIMS reviewer manually confirms the stored name against the MID system’s local display before use. Documented in interim procedure <<FILL>> |
| Residual risk | Low during the qualification-only period; no GxP release decision made against an affected record |
| Control owner | A. Reyes, LIMS Administrator |
| Review date | 15 Sep 2026, on receipt of the vendor patch |
Required actions and retest
| # | Action | Owner | Target date | Retest required | Retest reference |
|---|---|---|---|---|---|
| 1 | Vendor firmware patch correcting the export-encoding truncation | MID Vendor | 15 Sep 2026 | Yes | OQ-MID-009 addendum, multi-byte character organism panel |
| 2 | LIMS interim manual confirmation procedure for affected records during qualification | A. Reyes | 21 Aug 2026 (complete) | No | N/A, interim control only |
| 3 | Check whether the vendor’s data-warehouse export shares the same encoding routine | System owner | 30 Sep 2026 | To be determined | <<FILL>> |
Conclusion
The intermittent truncation of organism names during MID-to-LIMS result transmission was isolated to the MID vendor’s result-export routine, which switches to byte-counted truncation under a Latin-1 encoding fallback triggered by certain multi-byte characters, confirmed by transmission-log evidence captured at the sending boundary before LIMS received anything. The vendor initially attributed the issue to LIMS based on an application log that did not reflect the transmitted value; providing the vendor with transmission-level evidence and a simplified reproduction resolved the disagreement, and vendor engineering confirmed the mechanism as a known, previously undisclosed firmware behavior. The interface test case remains FAIL pending the vendor’s firmware patch and a targeted re-test against organism names carrying the same character class, with an interim manual-confirmation control in place for the remainder of qualification.
| Field | Entry |
|---|---|
| Interface test case disposition | Remains FAIL pending correction and retest, reference OQ-MID-009 addendum |
| Dispute status at closure | Resolved |
| Escalation beyond validation? | Yes, flagged to the system owner to check the vendor’s data-warehouse export for the same defect |
Notice what the boundary-level evidence did here. The vendor’s first explanation was not dishonest, it was simply drawn from a log that could not see the problem. Pulling the transmission record rather than the application record is what turned “our logs show it was fine” into a confirmed, specific, fixable defect, and the interface stayed FAIL on the record the entire time that was being sorted out.
Common inspection findings this form prevents
- A vendor’s self-report accepted as root cause with no independent evidence pulled from the actual interface transaction.
- An interface failure left unclassified and untracked while two parties argue informally about whose system is at fault.
- A test case quietly marked PASS, or simply left without a clear FAIL disposition, because the root cause investigation was still unresolved.
- “Waiting on the vendor” as a permanent status with no assigned owner, no target date, and no interim control.
- A disagreement with a vendor resolved by adopting their explanation without checking it, with no record of what the internal team’s own evidence showed.
- Evidence pulled only from a finished screen or report on one side, rather than from the boundary itself, so the fault is attributed to the wrong system.
How to adapt this form
- Name your actual boundary evidence sources in section 3 for each interface type you use: a message queue, a file drop with a processing log, an API gateway log, a database staging table. The principle (pull it before either system’s business logic touches it) stays the same across all of them.
- Set your vendor escalation path and the support tier that can actually produce transmission-level evidence, not just an application-level status. Tier 1 phone support rarely has access to what section 3 needs.
- Point section 6’s classification questions at your own GxP-relevance and data-integrity criteria so this form’s classification stays consistent with the main test incident classification table.
- If your quality agreement or vendor contract specifies a defect-notification or dispute-resolution timeline, reference it directly in section 5 so the target date is contractual, not just aspirational.
- Where an interface is shared across more than two systems, or by more than one vendor, duplicate section 3 for each additional boundary rather than forcing a three-way comparison into a two-column table.