Overview CaptureKeyLastUpdated

CaptureKey is an Android app that ingests photos from a tethered Canon camera during short-lived events, tags each photo with the assignment it belongs to (for example, a suite or table), runs on-device quality checks, and uploads everything to the Shatterportal server while keeping the whole team in sync.

You shoot with the camera as usual. CaptureKey listens over USB, pulls every new photo to the phone, checks it for blinks, soft focus, and exposure problems, and automatically tags it with your currently active assignment. When you complete an assignment or move on to the next one, those photos queue for upload in the background.

Try it before the event

The Interactive Demo is a working simulation of the app in your browser — no camera or account needed. Take the ~5 minute guided tour of a full session (login → event → assignment → photos → quality → complete → upload → end session), then break things freely in sandbox mode.

PLACEHOLDER IMAGE assets/images/CaptureKey/Overview.png Screenshot: Capture tab with a photo loaded and an active assignment. Should show the full top bar, active assignment card, photo preview, badges, and bottom tabs so the numbered markers below line up. Reposition markers with the marker editor after dropping the image in.
Capture tab overview 1 2 3 4 5 6 7 8 9
  1. Logo / Wordmark - Tap the CaptureKey logo to open the About dialog: app version and a Check for Updates button. See App Updates.
  2. Camera Status - Camera icon colored by connection state: green = listening for captures, amber = connecting or disconnecting, red = disconnected. Tap it to jump to the camera card on the Session tab.
  3. Notifications Bell - Messages, return requests, and system notices land here. A badge counts unread items and the bell pulses and rocks while anything is unread. See Notifications & Messages.
  4. User Menu - Your profile picture. Opens a menu with End Session, Import Photos (when an event session is active), Settings, Scan Login QR, and Logout.
  5. SMID Readout - The device's SMID in small text under the top bar, always visible. See SMID.
  6. Active Assignment Card - Shows the assignment new photos will be tagged with. Complete finishes it (and jumps to Path); Select appears when nothing is active.
  7. Photo Preview - The selected or newest photo, with crop guides and face boxes overlaid when enabled. Tap for fullscreen (pinch to zoom); long-press and drag left to delete.
  8. Assignment & Upload Badges - Every photo shows the assignment it's tagged to and its upload state. Tap the assignment badge to retag that single photo. See Upload States.
  9. Bottom Tabs - Gallery · Capture · Path · Session. Tap a tab or swipe left/right between pages. The Android back button walks back through your page history.

Getting Started

Install & Permissions

CaptureKey is distributed through PortalKey under Software. Install the APK the same way you install other Shatterproof Android apps; after the first install, the app keeps itself current through its built-in update check. On first launch, Android will prompt for:

  • Notifications - Allow these. They carry messages from Operations and other photographers, and they power the persistent SMID notification.
  • USB access - Requested each time a camera is attached. Check Always allow / Use by default on the dialog so it doesn't pop up mid-event.

No storage permission is needed. Imported photos live in CaptureKey's own app folder, and the optional Import Photos menu item uses the system file picker.

Sign In

If you aren't signed in, the app opens directly to the login screen. The normal tabs and top bar are hidden until you authenticate.

PLACEHOLDER IMAGE assets/images/CaptureKey/Login.png Screenshot: login screen — logo, username/password fields, Log In button, Scan Login QR button.

There are two ways in:

  1. Username & password - Your normal Shatterproof Media (PortalKey) credentials. You don't need a separate CaptureKey account, but the account must be staff level or above.
  2. Scan Login QR - Scans a one-time login code generated for you in PathKey by an admin. Each code works once and expires, and it can carry the event you're scheduled for so the app lands directly in it. Handy for handing a pre-staged phone to a photographer without typing a password.

Your session is remembered until it expires, so you can close and reopen the app without signing in again. A login also triggers an immediate update check.

Scanning a QR while someone else is signed in

Scanning a login QR from the user menu while another account is active shows a Replace Current User? warning — confirming replaces the signed-in user, and that user's unsynced local changes may be abandoned. Finish or end the previous session first when possible.

Pick an Event

Each event is its own sandbox. Assignments, photos, messages, and notes from one event never leak into another, and a device is attached to one event at a time.

After sign-in the app resolves your event in this order:

  1. The event this device was already using (survives app restarts and sign-outs).
  2. The event suggested by the server — the active event nearest to now that you're on the roster for — or the event embedded in your login QR.
  3. Otherwise, nothing loads until you pick one yourself.
  • To pick or switch manually, go to Session and tap Choose Event / Change Event. You only see events you're rostered on or have assignments in.
  • If a photo imports while no event is loaded, the app forces the event picker open so the photo can be filed correctly.

Connect the Camera

CaptureKey speaks USB directly to Canon EOS cameras. No extra drivers, apps, or cables beyond a standard USB connection to the phone.

  1. Plug the USB cable into the camera, then into the phone.
  2. When Android asks which app should handle the USB device, pick CaptureKey and check Use by default.
  3. The app starts a tether session; if it doesn't, open Session, expand the Camera card, and tap Connect.
  4. The camera icon in the top bar turns green ("Listening") within a few seconds.
  5. Trigger a test shot. It should appear on the Capture tab almost immediately.
Leave the card in the camera

The intended production flow keeps the capture destination on the camera card. CaptureKey downloads copies to the phone. Only enable Delete From Card After Import if you're confident you want that; see Canon Camera Notes.

Normal Operation

Typical Flow

Most events follow a loop like this:

  1. Activate an assignment: tap its row on the Path tab (use the filter box to jump straight to a number), or tap Select on the Capture tab.

  2. Shoot your photos. Every capture that arrives while this assignment is active is imported, quality-checked, and automatically tagged with it.

  3. Tap Complete on the Capture tab (or on the Path overview card). The assignment is marked complete for the whole event, its photos queue for upload, and the app auto-activates the next open assignment on your list — a banner announces which one.

  4. If a location has nothing to shoot, use Mark No Photos from the row's ⋮ menu on Path. That completes the assignment and flags it; if a photo is later retagged or uploaded onto it, the flag clears automatically.

  5. If someone requests a return, you'll get a notification and the assignment moves to the Return Requested section in Path. Re-activate it, shoot, and complete it again.

Why there's no Claim button

Assignments don't need to be "claimed." Activating one just tells your device to tag new photos with that number — two photographers can even have the same assignment active. Completing is the action that's event-global; use Assign to Me only when you want the row to move onto your list.

You can practice this exact loop hands-on in the Interactive Demo before ever plugging in a camera.

Capture Tab

Capture is your home base during the event. It shows the newest (or selected) photo from the camera, its quality results, its assignment tag, and its upload state.

PLACEHOLDER IMAGE assets/images/CaptureKey/Capture.png Screenshot: Capture tab with a photo that has a quality notice — active assignment card, preview with crop guide/face box, quality warning card, Recheck Quality button, badges, photo note card.

Elements:

  • Active Assignment card - The assignment new photos will be tagged to. Complete finishes it and jumps to Path; when nothing is active, Select takes you to Path to pick one.
  • Photo preview - Tap to open fullscreen (pinch to zoom, pan). Long-press and drag left to delete the photo — the red trash background confirms before it commits. Crop guides and face boxes overlay here when enabled.
  • Quality notice - An amber card lists any issues found: blink detected, soft focus, over/underexposed, face near edge of frame. See Photo Quality Checks.
  • Recheck Quality - Re-runs the quality analysis on the current photo, using the current settings.
  • Assignment badge - The assignment this photo is tagged to. Tap it to retag this single photo; retagging does not change your active assignment.
  • Upload badge - The photo's live upload state. See Upload States.
  • Image Data - Opens a dialog with the photo's app metadata (photo ID, managed filename sequence, original camera filename, camera identity, tag source, upload state, quality issues, …) and its EXIF data. Text is selectable for copying into a report.
  • Photo Note - Free text attached to this single photo. Notes sync to the server with the photo.

New captures automatically become the displayed photo. To review older photos, pick them from the Gallery — tapping a thumbnail there opens it here.

Path Tab

Path is the event-wide view of every assignment — the same list everyone else on the team sees. Pull down to refresh it from the server.

PLACEHOLDER IMAGE assets/images/CaptureKey/Path.png Screenshot: Path tab — session overview card with Active/Total/Completed chips, the filter box, and a few section cards (Your Assignments with an active row highlighted, Return Requested, Skip List with a red SKIP row).
  • Session overview card - Event name, venue, when your path session started, plus Active / Total / Completed counters. When an assignment is active you also get Complete Active and Clear Active buttons here.
  • Filter box - The fastest way to find an assignment. It opens with a number keyboard (assignments are usually numbers); tap ABC to switch to text and search by name. Matches filter every section live.

Assignments are grouped into sections:

  • Your Assignments - Open items assigned to you.
  • Return Requested - Items someone asked for another pass on. Treat as higher priority.
  • Unassigned - Fair game for anyone to pick up.
  • Skip List - Red rows with a SKIP flag. Do not disturb unless Operations tells you otherwise.
  • Other Assignments - Assigned to someone else. Visible for context.
  • Completed - Finished rows, with who completed them and when.

Tapping a row activates it on this device. The active row is highlighted with an Active chip. Activating a Skip-listed row is allowed but shows the red warning styling.

Row actions (⋮ menu):

Not every action shows on every row — the menu adapts to the assignment's state.

  • Assign to Me - Pulls the assignment onto your list, replacing the previous owner.
  • Complete Assignment - Completes without needing to activate first.
  • Add / Edit Note - Free-text note on the assignment itself, visible to the whole team.
  • Show Retrieval QR - If the event has a media-code URL configured, shows a QR guests can scan to retrieve this location's photos.
  • Mark No Photos - Completes the assignment and flags it as having no photos.
  • Request Return - Flags the assignment for another pass and notifies the photographers involved plus Operations.
  • Reopen Assignment - Moves a completed or return-requested row back to open — and assigns it to you.

Session Tab

Session holds everything that isn't part of the per-photo, per-assignment loop: the event this device is attached to, the camera connection, upload status, and the activity log. Pull down to refresh.

PLACEHOLDER IMAGE assets/images/CaptureKey/Session.png Screenshot: Session tab — Event Session card (photographer, venue, chips, Export Session + End Session buttons), Camera card expanded with Connect/Disconnect and the delete-from-card toggle, and an Uploads card with a couple of pending rows.
  • Event Session card - The active event with photographer, venue, event start, and session start, plus Assignments / Completed / Unread counters. Change Event opens the event picker; Export Session starts a transfer; End Session opens the wrap-up dialog.
  • Camera card - Connection state with Connect / Disconnect buttons, a status line, the imported-photo count, and the connected camera's identity (name, stable ID, serial, USB IDs) — useful when reporting a misbehaving body. Also holds the Delete From Card After Import switch (off by default; removes the camera copy only after a successful import).
  • Uploads card - Appears whenever photos haven't finished uploading. Summarizes counts by state and expands to per-photo rows with progress bars, error text, attempt counts, and per-photo Retry / Cancel buttons, plus Retry All. See Upload States.
  • Session Activity - A running log of what the app has done (imports, uploads, assignment changes, sync results). The newest entry always shows; expand for history.
  • Test - Sends a test notification through the server to this device. Use it to verify notifications end-to-end before an event.

Settings

Open Settings from the user menu (your profile picture, top-right). Settings are grouped into collapsible sections:

PLACEHOLDER IMAGE assets/images/CaptureKey/Settings.png Screenshot: Settings dialog with the Photo Quality section expanded, ideally showing a "From PathKey" caption on one field and "Overriding PathKey — Reset" on another.

General

  • Dark Mode - Dark theme throughout the app.
  • Lock Rotation - Keep the app in portrait on this device.
  • Notification Sound / Vibration - Per-device alert behavior for incoming notifications.

Display & Power

  • Keep Screen Awake - Keeps the screen on while a camera is connected.
  • Dim When Idle - With Keep Screen Awake on, dims the screen after a configurable idle timeout to a configurable brightness. Touch the screen to wake it back up.
  • Notification Check Interval - How often the app polls the server for new notifications. Faster uses more battery and data.
  • Update Check Interval - How often the app checks for new releases in the background. A check also runs at every login.

Photo Quality

The quality-check controls — see Photo Quality Checks for what each does. These fields can be pre-set per event by the server:

"From PathKey" and "Overriding PathKey"

When the event's PathKey configuration sets a quality field, the field shows a From PathKey caption. You can still change it — the field then shows Overriding PathKey with a Reset link, and your override lasts only for the current session on this device. It is never saved as the device default. Fields PathKey doesn't set behave normally and persist on the device.

Admin

Visible only to admin/super accounts: edit the device SMID and add the SMID widget to the home screen.

Notifications & Messages

Everything event-wide — messages, return requests, upload failures, system notices — shows up behind the bell in the top bar. Unread items bump the badge and animate the bell, and (depending on your settings) play a sound or vibrate. The app checks the server on the configured interval.

PLACEHOLDER IMAGE assets/images/CaptureKey/Notifications.png Screenshot: Notifications dialog with one unread message (Reply / Mark Read buttons) and the collapsed "Read Notifications (n)" group, plus the Send Message button.
  • Unread notifications are listed first; read ones collapse into a Read Notifications group.
  • Tap a notification (or Mark Read) to mark it read; Mark All Read clears the badge. Read state is per-photographer and syncs to the server.
  • Reply on a message opens a pre-addressed response to the sender (Operations or the photographer who wrote it).
  • Send Message - Compose to Everyone, Operations, or a specific photographer on the event. Two quick presets fill common bodies: Please visit this suite and Need reprints.

Photo Quality Checks

Every imported photo is analyzed on the device, immediately after import. Problems appear as an amber notice card on Capture, a warning icon on the Gallery thumbnail, and in the photo's Image Data. Checks flag — they never block: a flagged photo still uploads normally.

CheckWhat it flagsTuning
Blink Detection A detected face with closed eyes ("Blink detected"). On/off.
Blur / Soft Focus A detected face that appears out of focus ("Soft focus on face"). On/off plus a Blur Sensitivity slider — higher flags more photos as soft, lower only flags very blurry shots.
Exposure Check Photos that look significantly over- or underexposed. On/off.
Crop Guide Draws corner framing guides on the preview and flags faces near the edge of frame ("Face near edge of frame"). On/off plus a Guide Inset slider controlling how far from each edge the guides sit.
Show All Face Boxes Not a check — outlines every detected face on the preview instead of only problem faces. On/off.

Offending faces are outlined on the Capture preview so you can see exactly which face triggered the flag. Use Recheck Quality on Capture to re-run the analysis after changing settings.

All of these live in Settings → Photo Quality, and each field may be pre-configured per event by PathKey (shown with a From PathKey caption).

Upload States

Photos are held locally while their assignment is still active on this device, so last-second retags, deletes, and notes don't have to fight the uploader. As soon as you move on, the photos advance through the upload pipeline automatically in the background.

StateWhen you see itWhat to do
Held Locally The photo's assignment is still active on this device (or the photo is untagged). Nothing - this is normal. It moves to Queued when you complete or switch away. You can also force it with Retry / Retry All on the Session tab.
Queued Upload Waiting for the background uploader. Nothing. Uploads run automatically whenever a connection is available. Cancel returns it to Held Locally.
Uploading In flight right now — the Session tab shows a live progress bar. "Waiting for server confirmation" means the bytes are up and the server is finishing. Keep the phone online. Large JPEGs over weak Wi-Fi can take a while.
Uploaded Server confirmed receipt. Safe to delete locally if you need space. Gallery hides these by default.
Upload Failed The upload errored after retries. The Session tab shows the error text and attempt count. Failed photos retry automatically when the network comes back; you can also tap Retry. If it stays failed, see Troubleshooting.
What triggers a queue

Photos queue when their assignment stops being your active assignment: tapping Complete, marking No Photos, or activating a different assignment. Retagging a photo onto an assignment that is already completed also queues it immediately. Untagged photos stay held until they're tagged (or manually retried).

Assignment States

How assignments read on the Path tab:

StateMeaning
ACTIVEThe assignment your device is tagging photos with right now. One at a time per device, and device-local — it doesn't claim anything for anyone else.
YOURSOpen and assigned to you (the Your Assignments section).
OPENUnassigned. Anyone can Assign to Me or simply activate and shoot it.
RETURNSomeone requested another pass. Higher priority than normal; the row shows the reason when one was given.
SKIPOperations says do not disturb. The app shows red warning styling if you activate one anyway. Completing a skipped assignment clears the flag.
NO PHOTOSCompleted with a "nothing to shoot" flag. The flag clears automatically if a photo is later retagged or uploaded onto the assignment.
DONECompleted — shows who completed it and when. Can be reopened if work reappears.

Advanced & Admin

The rest of this manual is for operators, shift leads, and anyone responsible for wrap-up. Most photographers don't need to touch it day-to-day.

End Session

End Session is the event wrap-up for this device. Reach it from the user menu or from the Event Session card on the Session tab. It sends a recap summary to the server, then clears all event-scoped data — including every imported photo file — from the device.

PLACEHOLDER IMAGE assets/images/CaptureKey/EndSession.png Screenshot: End Event Session dialog — summary rows (assignments completed, photos imported/uploaded, …), a red "Session cannot end yet" blocker box, and the recap notes field.

Readiness blockers

The dialog will not let you confirm while any of these are true:

  • An assignment is still active - Complete it or use Clear Active on Path first.
  • Photos not uploaded - Anything Held Locally, Queued, Uploading, or Failed blocks the end. Retry failed uploads from the Session tab.
  • Workflow updates still syncing - Pending local actions (completes, retags, notes) must reach the server first.

Recap notes

Use the notes field for anything Operations should know: which suites had issues, what equipment misbehaved, guest feedback worth logging. The text is stored with the session summary on the server.

What happens on confirm

  1. The app sends the session summary (assignments completed, photos imported/uploaded, camera identity, device SMID, recap notes) to the server. The call is idempotent — a retry won't create duplicates.
  2. On success, every imported photo file is deleted from the device and all event-scoped state is cleared.
  3. You stay signed in, back on the Session tab with no event loaded — ready to pick the next event or hand the phone off.
Point of no return

End Session is destructive on the device. Don't end until all uploads are complete — the blockers enforce this, so don't work around them by deleting un-uploaded photos unless you truly mean to discard them.

Logging out is separate

Logout in the user menu only clears who is signed in. If the event session hasn't been ended, the app warns you before letting you log out anyway.

Transfer Session

Export Session on the Session tab packages the device's session — a manifest plus every imported photo — and serves it over the local network for a print station or another machine to download directly, without going through the server.

PLACEHOLDER IMAGE assets/images/CaptureKey/Transfer.png Screenshot: Transfer Session dialog in the serving step — download QR code, URL underneath, status card ("Waiting for connection…" or a progress bar), End Transfer button.
  1. Make sure the receiving machine is on the same network — connect it to this phone's hotspot, or put both on the same Wi-Fi. The dialog has a shortcut to the phone's Hotspot / Wi-Fi settings.
  2. Tap Start. The phone starts a small local web server and shows a QR code plus the download URL.
  3. Scan the QR (or enter the URL) on the receiving machine. The dialog tracks progress: waiting → transferring with a percentage → complete, and counts how many times the bundle has been downloaded.
  4. Tap End Transfer when done. The dialog blocks accidental dismissal — the server keeps running until you end it.

If a transfer is interrupted, just rescan the QR to retry. The service also announces itself on the network via mDNS (_capturekey._tcp) so compatible receivers can discover it automatically.

Normal photo retrieval doesn't need this

Uploaded photos are stored on the server per event and pulled from there by SolidKey for fulfillment. Transfer Session is for the direct, venue-local handoff case — e.g. an on-site print station with no internet path to the server.

SMID

The SMID is the Shatterproof Media ID label for this device. It rides along with every uploaded photo and the end-of-session summary so Operations can trace which phone shot what. The camera body has its own SMID, resolved server-side from the inventory system by camera serial number.

Ways the device SMID is displayed:

  • In-app readout - Small text under the top bar, always visible while signed in.
  • Home-screen widget - Shows the SMID large, with buttons to display it as a QR code and to open this manual. Add it from Settings → Admin (Add SMID widget to home screen) or from the launcher's widget picker.
  • Persistent notification - A silent, ongoing notification shows the SMID even when the app is closed. Requires notification permission.

Editing: only admin/super accounts see Settings → Admin, where the SMID can be changed (1-10 uppercase letters, numbers, underscores, or dashes). It is a device/app setting — it survives logout and event changes.

App Updates

CaptureKey updates itself from the Shatterportal software channel:

  • A check runs at every login and then on the interval set in Settings → Display & Power.
  • You can check manually any time: tap the logo → Check for Updates in the About dialog.
  • When an update is found, Download & Install fetches the APK and hands it to the Android installer. The install prompt is the normal system dialog.
Mandatory updates

A release can be flagged mandatory on the server. When the app detects one, the update dialog opens non-dismissably — the app cannot be used until the update is installed. Failed downloads offer Retry.

The installed app must be signed with the same key as the downloaded APK or Android rejects the install — relevant only if a device somehow ended up with a debug-signed build.

Sync & Conflict Rules

Multiple photographers touch the same event at the same time. CaptureKey's model keeps things predictable:

  • Active is device-local. Two devices can have "the same" assignment active. Each only tags the photos it sees.
  • Complete is event-global, last write wins. The server records whoever completed it most recently. Completing also clears any skip flag and any pending return request on the row.
  • Assign to Me wins the row. Reassignment replaces the previous owner, even if the row was already on someone's list. Last write wins; there's no locking at event scale.
  • No Photos clears on new photo. If a photo is uploaded or retagged onto a No Photos assignment, the flag drops automatically. The assignment stays completed unless someone reopens it.
  • Reopen takes ownership. Reopening a completed or returned row also assigns it to whoever reopened it.
  • Skip is operator-managed. Operations sets and clears Skip through PathKey. Photographers see the red warning but can shoot it if instructed.
  • Local writes are optimistic. Actions apply instantly on your device and sync to the server through an outbox in the background. Your own pending changes are overlaid on the server data so they always appear applied.
  • Refresh protects your outbox. When the server has newer data but this device still has unsynced changes, a banner appears and the app waits instead of refreshing over them. A manual pull-to-refresh in that state asks for confirmation first.

Canon Camera Notes

CaptureKey talks to Canon EOS bodies directly over USB using MTP plus the Canon EOS event stream (a native libusb/PTP layer handles what Android's MTP API can't). Tested bodies include the R100 and the T5i. Other recent EOS bodies should work but may need a firmware check.

Compatibility notes

  • Canon R100 - Works.
  • Canon T5i - Works, with broadened handling for older Canon EOS event variants. If the status says "Listening" but no captures arrive, power-cycle the camera and reconnect.
  • Other EOS bodies - Generally fine. If a specific body misbehaves, expand the Camera card on the Session tab, note the camera name / stable ID / USB IDs shown there, and send them to Operations.

Capture destination

Leave the camera set to write to its SD card. CaptureKey pulls copies. Writing to the card keeps a physical backup and is faster on tethered bursts than writing over USB.

Delete from card

If you turn Delete From Card After Import on (Session tab → Camera card), the app deletes each successfully imported photo from the card. This only runs after CaptureKey has the file and has registered it for upload. It does not run on failure.

Offline Behavior

Short-lived events often happen in venues with bad networking. CaptureKey is local-first:

  • All workflow state is persisted on the device, scoped to your photographer and event. Camera capture, import, tagging, and quality checks work with no connection at all.
  • Every event-global change you make (completes, retags, notes, no-photos, returns) is queued in an outbox and synced to the server in the background. The Session Activity log reports each sync as it lands.
  • Photo uploads are handled by Android's WorkManager: when the device is online it drains the queue; when it's not, it waits. Failed uploads retry automatically the moment a network connection returns.
  • Nothing needs to be pressed when the network comes back — outbox actions and uploads both resume on their own.

Troubleshooting

Camera / USB

  • If the camera icon is red, open the Session tab, expand the Camera card, and tap Connect. The status line under the buttons says what the app is waiting on.
  • Unplug and replug the cable — phone end first, then the camera end.
  • Power-cycle the camera. Canon bodies sometimes need a full off-on after the USB permission dialog is dismissed.
  • If Android keeps popping the USB permission dialog, check Always allow / Use by default.
  • Swap to a known-good USB cable. Charge-only cables will not work.
  • If the camera name reads wrong or "Unknown" on the Camera card, screenshot the card (it includes the stable ID and USB IDs) and send it to Operations.

Uploads stuck

  • Confirm the phone actually has a data connection. Wi-Fi drops can hide.
  • Open the Session tab's Uploads card. It shows exactly which photos are in which state, plus the last error and attempt count for failures.
  • Failed uploads retry automatically when connectivity returns; Retry All forces it immediately.
  • A single Upload Failed photo does not block the others. Several failing in a row usually means a connectivity or account problem — check the error text.
  • If photos sit in Queued for minutes on a good connection, toggle airplane mode off and on. Android occasionally pins background work to an unavailable network.
  • Photos showing Held Locally under an assignment you finished usually mean the assignment is still active — complete it or clear the active assignment on Path.
  • As a last resort, sign out and sign back in. Local photos, tags, and pending sync actions survive sign-out.

Sync / Data

  • If Path looks stale, pull down to refresh. If a banner says a refresh is waiting on unsynced changes, give the outbox a few seconds to drain (watch Session Activity) and try again.
  • If two photographers appear to have the same assignment active, that's expected — active is device-local.
  • If a No Photos flag disappeared from an assignment, someone retagged or uploaded a photo onto it. That's by design.
  • Never clear the app's data in Android settings during an event — it deletes the outbox and un-uploaded photos along with everything else. If something seems wrong, call Operations first.

General

  • Keep the phone plugged in or on a battery pack. Tethered capture drains battery quickly — the Dim When Idle setting helps stretch it.
  • Turn on Lock Rotation if the UI keeps flipping when you hand the phone around.
  • For persistent issues, note the photographer username, event name, assignment number, and approximate time, then send it to Operations. The device's SMID (under the top bar) and the Session Activity log help the server side pick up the thread.

About CaptureKey

CaptureKey is part of the Shatterproof Media KeyRing. It plugs into the same PortalKey backend as PathKey, SolidKey, and SiteKey, so photographer identity, event data, and media retrieval all stay in one place: PathKey configures events and assignments, CaptureKey shoots them, and SolidKey pulls the uploaded photos for fulfillment.

This app is actively developed. If something feels off or could be faster, tell Operations - nothing about the workflow is set in stone.