Skip to content

IBEISIA.iaCheckMissing is dead code: the WBIA-600 self-heal never re-sends or retries #1712

Description

@JasonWildMe

Found during the investigation for #1710, where it is documented as explicitly out of scope.

Current Behavior

IBEISIA.iaCheckMissing (src/main/java/org/ecocean/identity/IBEISIA.java:790) is the only in-request self-heal when WBIA answers an identify/add call with code 600 "Missing image and/or annotation UUIDs". It is dead code in both branches:

  • Image branch (IBEISIA.java:798-808): a literal no-op. It iterates missing_image_uuid_list and prints **** FAKE ATTEMPT to sendMediaAssets: uuid=... with the comment // TODO: actually send the mediaasset duh. No media asset is ever sent.
  • Annotation branch (IBEISIA.java:809-832): calls __sendAnnotations(anns, context, myShepherd) but never assigns the result — JSONObject srtn = null; stays null, so the success check if ((srtn != null) && ...) tryAgain = true; can never fire.

Since both branches leave tryAgain == false, every caller (IBEISIA.java:221 inside __sendAnnotations itself, and IBEISIA.java:951 in the identify flow) concludes there is nothing to retry. An identification job hit by a 600 therefore burns all of its requeues without WBIA ever receiving the missing objects.

Expected Behavior

On a 600, the missing media assets and annotations should actually be re-sent to WBIA, the response should be checked for success, and the identify should be retried when the re-send worked — with a bound on retry attempts so a persistent failure cannot loop.

Notes

  • feat(ia): WBIA annotation reconciliation sweep #1710's reconciliation sweep makes the next identify succeed by healing registration in the background; it does not rescue an in-flight job. This issue is about the in-flight path.
  • The method carries // TODO: Evaluate, deprecate fully and remove — an acceptable alternative resolution is to delete iaCheckMissing outright and rely on the sweep plus proper retry semantics, rather than fixing the branch bodies. Either way, the current state (a self-heal that silently does nothing) should not survive.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugsomething's broken!

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions