NFC Troubleshooting Guide

Common Problems and Quick Fixes

| 6 min read

NFC Troubleshooting Guide: Common Problems and Quick Fixes

NFC failures split almost evenly between RF environment issues, software configuration mistakes, and mismatched tag types. This guide walks through every layer of the stack — antenna, protocol, OS, and application — with a structured diagnostic process you can apply in the field.

Diagnostic Framework

Before diving into specific fixes, establish which layer is failing:

Layer Symptom Tool
RF / antenna No read at any distance Separate reader and tag, try metallic-free surface
Tag hardware Read fails on all devices Verify tag with a known-good device
Protocol Partial reads, CRC errors Enable verbose logging in your reader SDK
OS / driver Tag detected but not parsed Check OS NFC event logs
Application Tag reads but app misbehaves Decode raw NDEF with NDEF Decoder

Problem 1: Tag Is Not Detected

Symptoms: No NFC event fires, no vibration or sound from the phone.

Causes and fixes:

  • Wrong operating-frequency: Verify the tag is a 13.56 MHz NFC tag and not a 125 kHz LF RFID tag. LF tags look similar but are completely incompatible. Use a frequency meter or datasheet.
  • Metal interference: Placing an nfc-tag directly on a metal surface collapses the magnetic field. Use an on-metal-tag with a ferrite spacer, or move at least 5 mm off the surface.
  • Antenna misalignment: The reader's antenna is typically a loop in the top 20–30% of a phone. Sweep the tag slowly across the back of the device to find the hot spot.
  • Tag damaged: otp lock operations or electrostatic discharge can brick tags permanently. Test with a fresh tag from a different batch.
  • NFC disabled on device: iOS requires NFC to be enabled in Settings > General > NFC. Android enables it in Settings > Connected Devices > NFC.
  • Tag at wrong distance: The read-range for standard NTAG tags is 0–4 cm. At 5+ cm the field collapses. Close the gap.

Problem 2: Tag Detected but NDEF Read Fails

Symptoms: The OS fires an NFC discovered event but your app receives an empty or error payload.

Causes and fixes:

  • Tag not NDEF-formatted: A blank tag from the factory contains no capability-container and no NDEF TLV. Use your NFC SDK's formatNdef() method before writing.
  • Corrupt NDEF message: Write with one device, read with another to isolate. Use the NDEF Decoder to inspect raw bytes.
  • NDEF message too large: If you wrote content close to the user-memory limit and the tag was power-cycled mid-write, the message may be truncated. Check total-memory with the Memory Calculator.
  • Wrong tnf or type field: Inspect the record header. A miscoded TNF causes the host OS to silently drop the record.
  • Password-protected tag: If password-protection is enabled and the read password (PACK) is wrong, the tag will NAK the read command.

Problem 3: Write Fails or Data Corrupts

Symptoms: Write operation returns success but reading back shows wrong or empty data.

Causes and fixes:

  • Write endurance exhausted: NFC tags have a finite write-endurance — typically 100,000 cycles for NTAG, 200,000 for MIFARE Ultralight C. Use the Tag Cost Calculator to model write frequency.
  • lock-bits set: Once lock bits are programmed, user memory becomes read-only permanently. This is irreversible on standard tags.
  • Partial write interrupted: Remove metal objects or other tags from the RF field. The anti-collision loop will abort a transaction if a second tag enters the field mid-write.
  • Incorrect block alignment: NTAG memory is byte-addressable but commands are page-aligned (4 bytes). Writing to an unaligned boundary silently wraps around.
  • Android 10+ WriteNdef bug: Some OEM builds have a race condition in NfcAdapter.enableForegroundDispatch(). Wrap the write in a try/catch and retry once on FormatException.

Problem 4: iOS Does Not Open App

Symptoms: Tag reads on Android but launches Safari instead of your app on iOS.

Causes and fixes:

  • Missing Universal Link / App Clip: iOS requires either a Universal Link (domain-associated app) or a properly configured App Clip Code to launch apps from NFC. A plain URL will always open Safari.
  • Background tag reading not declared: Add com.apple.developer.nfc.readersession.formats with NDEF to your entitlements if using Core NFC in background mode.
  • URL mismatch: The apple-app-site-association file on your server must list the exact path prefix that the NFC tag URL uses.
  • Device running iOS < 11: Core NFC was introduced in iOS 11. Background tag reading requires iOS 14+. See iOS Core NFC Programming.

Problem 5: Inconsistent Read Range

Symptoms: Range varies from 0.5 cm to 3 cm across different reads.

Causes and fixes:

  • Reader antenna misalignment: Phone antennas are not centred on the back. Map the antenna position once with a known tag.
  • Phone case interference: Thick leather or carbon-fibre cases absorb the RF field. Remove the case or use a high-sensitivity tag.
  • Other electronics nearby: Wi-Fi routers, USB 3.0 cables, and monitor power supplies generate 13.56 MHz harmonics. Move 30+ cm away.
  • nfc-antenna damage: Cracks in the tag inlay break the resonant loop and reduce effective range. Inspect under bright light.

Problem 6: Wrong App Opens on Android

Symptoms: Scanning the tag opens the wrong app or a disambiguation dialog.

Causes and fixes:

  • No Android Application Record (AAR): Append an AAR record at the end of your NDEF message with your app's package name. Android uses this as a strong hint.
  • Multiple apps handle the same URI scheme: The OS presents a chooser when multiple apps register the same intent filter. Add a unique URI scheme or AAR to force your app.
  • Intent filter priority too low: In your AndroidManifest.xml, set android:priority="1000" on the NFC intent filter to outbid generic URI handlers.

Quick Reference Checklist

Check How
Tag is NFC Forum certified Look for the n-mark on packaging
Tag type matches reader Use Compatibility Checker
NDEF formatted Attempt format before first write
Memory not exceeded Memory Calculator
No lock bits set Read CC byte 0x0A on Type 2 tags
Antenna aligned Sweep slowly across phone back

See also: What Is NFC | NFC Tag Types Explained | How to Read and Write NFC Tags | NFC Security Deep Dive

Terms in This Guide