question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

"3 of 2" booster certificates not considered complete

See original GitHub issue

Avoid duplicates

  • Bug is not mentioned in the FAQ
  • Bug is not already reported in another issue

Technical details

  • OS version: Android 11
  • App version: 1.13.3

Describe the bug

Vaccines certifications which have a total dose number lower than dose number (“3 of 2”) are not marked as complete. If there is a “series completing” vaccine certificate added (“2 of 2”), it is used instead.

Steps to reproduce the issue

  • Scan a vaccine certificate that has a higher dose count than total dose count (“3 of 2”)
  • Optionally scan one that has same dose count as total dose count (“2 of 2”)
    • If this optional step is done: Observe that preferred vaccine certificate is the “2 of 2” one.
  • Tap “Display certificates”, scroll to the vaccine certificate list.
  • Observe that the “3 of 2” certificate is considered incomplete.

image

image

Expected behaviour

The “3 of 2” booster certificate should be used.

Possible Fix

diff --git a/covpass-sdk/src/main/java/de/rki/covpass/sdk/cert/models/Vaccination.kt b/covpass-sdk/src/main/java/de/rki/covpass/sdk/cert/models/Vaccination.kt
index 1dde7773..ac01f8d3 100644
--- a/covpass-sdk/src/main/java/de/rki/covpass/sdk/cert/models/Vaccination.kt
+++ b/covpass-sdk/src/main/java/de/rki/covpass/sdk/cert/models/Vaccination.kt
@@ -48,10 +48,10 @@ public data class Vaccination(
     override val id: String = "",
 ) : DGCEntry {
     public val isComplete: Boolean
-        get() = doseNumber == totalSerialDoses
+        get() = doseNumber >= totalSerialDoses
 
     public val isCompleteSingleDose: Boolean
-        get() = doseNumber == 1 && totalSerialDoses == 1
+        get() = doseNumber >= 1 && totalSerialDoses == 1
 
     public val isBooster: Boolean
         get() = (isComplete && doseNumber > 2) || (isComplete && product == JANSSEN && doseNumber == 2)

This resolves the problem:

image

Additional context

This may also affect CovPass on iOS, but I couldn’t try it out. As pointed out in https://github.com/Digitaler-Impfnachweis/covpass-android/issues/159#issuecomment-1003745088, iOS is not affected, and already has the expected behavior.

I’m not sure if this is more appropriate as a bug report or as a feature request, but in general I am worried that this behavior might lead to me accidentally presenting the wrong vaccine certificate in situations that require me to present my vaccine certificate, or lead to people think that I’m not fully vaccinated when I actually am by having it say that I am in fact not fully vaccinated.

While this is off-specs and should be fixed by issuers, some countries such as Turkey actively issue booster certificates in this way and do not provide an easy way to contact to report such issues. If I’m missing something there, please feel to point out, as I’d like to also contact them about this issuance issue.

German residents that get vaccinated in countries such as Turkey may be affected by this unless they get their vaccine certificates reissued in Germany.

I have a similar issue open on corona-warn-app: https://github.com/corona-warn-app/cwa-documentation/issues/794

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:8 (3 by maintainers)

github_iconTop GitHub Comments

2reactions
edgeyboycommented, Jan 21, 2022

image Heyo, can confirm that this is fixed now. Thanks a lot to everyone who worked on this. I will be closing the issue now.

1reaction
alexcimandercommented, Jan 13, 2022

Hey everyone! We are working on the needed adjustments of the CovPass so that we accept 2/1, 3/1 etc. Please bear with us for more information. we will keep you updated about release details asap.

Thank you everyone!

Read more comments on GitHub >

github_iconTop Results From Across the Web

COVID-19 Vaccine Booster Questions & Answers
Yes, the Digital COVID-19 Vaccine Record will be updated and will show that a booster vaccine dose has been administered. However, your previously...
Read more >
Vaccine Certificate Validity for Each Schengen/EU Member ...
Once the booster shot is received, the pass will remain valid for a total of 270 days.
Read more >
Requirement for Proof of COVID-19 Vaccination for Air ...
If you don't meet these requirements, you are NOT considered fully vaccinated. A booster dose is not needed to meet this requirement.
Read more >
Vaccination certificate valid indefinitely for those with booster
The vaccination certificate is valid in Italy indefinitely for those with a booster or who have recovered after their initial two-dose cycle.
Read more >
EU Digital COVID Certificate - European Commission
EU Digital COVID Certificate: Commission adopts binding acceptance period of nine months for vaccination certificates · 3/3 for a booster dose ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found