Skip to content

[MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold#1496

Merged
alexandr-simprints merged 3 commits into
release/2025.4.0from
MS-1271-2025-4-0-mfid-credential-subject-is-not-returned-when-biometrics-match-list-is-empty
Dec 9, 2025
Merged

[MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold#1496
alexandr-simprints merged 3 commits into
release/2025.4.0from
MS-1271-2025-4-0-mfid-credential-subject-is-not-returned-when-biometrics-match-list-is-empty

Conversation

@alexandr-simprints
Copy link
Copy Markdown
Contributor

@alexandr-simprints alexandr-simprints commented Dec 8, 2025

JIRA ticket
Will be released in: 2025.4.0

Root cause analysis (for bugfixes only)

First known affected version: 2025.4.0

When running a 1:N identification in the scenario where:

  • We do a 1:N
  • We don't have a biometric match
  • We do have an NHIS match

SID fails to return the NHIS-linked GUID. Instead, the result set is empty. This is because the credential results were filtered out by the threshold. We need to always include the GUIDs linked to credential regardless of the matching score.

Notable changes

  • GUIDs linked to credential are now at the top of the returned Identification list, regardless of their matching score
  • 1:N biometric matches are returned as usual, no changes there

Testing guidance

  • Enrol subject A and B with different biometrics, and different credentials.
  • Start identification, and capture the biometrics of the subject A, and credentials of the subject B
  • Observe, that both subjects are returned in the respons
image

Additional work checklist

  • Effect on other features and security has been considered
  • Design document marked as "In development" (if applicable)
  • External (Gitbook) and internal (Confluence) Documentation is up to date (or ticket created)
  • Test cases in Testiny are up to date (or ticket created) TC-312
  • Other teams notified about the changes (if applicable)

…al matches first, ignoring the confidence threshold. This way the callout app ˆcan display the credential holder GUIDs alongside their match score
@cla-bot cla-bot Bot added the ... label Dec 8, 2025
@alexandr-simprints alexandr-simprints requested review from BurningAXE, alex-vt, luhmirin-s and meladRaouf and removed request for BurningAXE December 8, 2025 15:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a bug (MS-1271) where credential matches (e.g., NHIS/MF-ID matches) were incorrectly filtered out by the confidence threshold during 1:N identification. The fix ensures that credential-linked GUIDs are always returned at the top of the identification results list, regardless of their matching score.

Key Changes

  • Credential matches now bypass confidence threshold filtering and are always included in results
  • Credential results are returned before biometric (1:N) match results
  • Removed unused projectConfiguration parameter from mapToMatchResults function

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt Modified identification response logic to always return credential matches regardless of confidence score, and restructured to place credential results before biometric matches
feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt Consolidated and updated tests for credential matching behavior, including testing combined face and fingerprint credential results

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

…matches and 1:N matches are returned in the identification response. All credentials are also now properly sorted by confidence score DESC
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Dec 9, 2025

@alexandr-simprints alexandr-simprints merged commit e40f2d7 into release/2025.4.0 Dec 9, 2025
13 checks passed
@alexandr-simprints alexandr-simprints deleted the MS-1271-2025-4-0-mfid-credential-subject-is-not-returned-when-biometrics-match-list-is-empty branch December 9, 2025 10:40
luhmirin-s pushed a commit that referenced this pull request Jan 19, 2026
…al matches first, ignoring the confidence threshold (#1496)

* [MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold. This way the callout app ˆcan display the credential holder GUIDs alongside their match score

* [MS-1271] Adding a test case covering scenario where both credential matches and 1:N matches are returned in the identification response. All credentials are also now properly sorted by confidence score DESC

* [MS-1271] Fixing tests
# Conflicts:
#	feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt
#	feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt
luhmirin-s pushed a commit that referenced this pull request Jan 20, 2026
…al matches first, ignoring the confidence threshold (#1496)

* [MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold. This way the callout app ˆcan display the credential holder GUIDs alongside their match score

* [MS-1271] Adding a test case covering scenario where both credential matches and 1:N matches are returned in the identification response. All credentials are also now properly sorted by confidence score DESC

* [MS-1271] Fixing tests
# Conflicts:
#	feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt
#	feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt
luhmirin-s pushed a commit that referenced this pull request Jan 20, 2026
…al matches first, ignoring the confidence threshold (#1496)

* [MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold. This way the callout app ˆcan display the credential holder GUIDs alongside their match score

* [MS-1271] Adding a test case covering scenario where both credential matches and 1:N matches are returned in the identification response. All credentials are also now properly sorted by confidence score DESC

* [MS-1271] Fixing tests
# Conflicts:
#	feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt
#	feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt
luhmirin-s pushed a commit that referenced this pull request Jan 20, 2026
…al matches first, ignoring the confidence threshold (#1496)

* [MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold. This way the callout app ˆcan display the credential holder GUIDs alongside their match score

* [MS-1271] Adding a test case covering scenario where both credential matches and 1:N matches are returned in the identification response. All credentials are also now properly sorted by confidence score DESC

* [MS-1271] Fixing tests
# Conflicts:
#	feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt
#	feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt
luhmirin-s pushed a commit that referenced this pull request Jan 21, 2026
…al matches first, ignoring the confidence threshold (#1496)

* [MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold. This way the callout app ˆcan display the credential holder GUIDs alongside their match score

* [MS-1271] Adding a test case covering scenario where both credential matches and 1:N matches are returned in the identification response. All credentials are also now properly sorted by confidence score DESC

* [MS-1271] Fixing tests
# Conflicts:
#	feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt
#	feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt
luhmirin-s pushed a commit that referenced this pull request Jan 21, 2026
…al matches first, ignoring the confidence threshold (#1496)

* [MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold. This way the callout app ˆcan display the credential holder GUIDs alongside their match score

* [MS-1271] Adding a test case covering scenario where both credential matches and 1:N matches are returned in the identification response. All credentials are also now properly sorted by confidence score DESC

* [MS-1271] Fixing tests
# Conflicts:
#	feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt
#	feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants