title: CoreNFC Scan Error - Session invalidated unexpectedly - iOS 13.2
body: <p>I am trying to read NFC tag by CoreNFC framework but getting below error.
  Already tried with below code </p>
  
  <pre class="lang-swift prettyprint-override"><code>
  import UIKit
  import CoreNFC
  
  class ViewController: UIViewController, NFCNDEFReaderSessionDelegate {
  
      @IBOutlet weak var messageLabel: UILabel!
      var nfcSession: NFCNDEFReaderSession?
  
      override func viewDidLoad() {
          super.viewDidLoad()
          // Do any additional setup after loading the view, typically from a nib.
      }
  
      override func didReceiveMemoryWarning() {
          super.didReceiveMemoryWarning()
          // Dispose of any resources that can be recreated.
      }
  
      @IBAction func scanPressed(_ sender: Any) {
  
  
          guard NFCNDEFReaderSession.readingAvailable else {
              let alertController = UIAlertController(
                  title: "Scanning Not Supported",
                  message: "This device doesn't support tag scanning.",
                  preferredStyle: .alert
              )
              alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
              self.present(alertController, animated: true, completion: nil)
              return
          }
  
          nfcSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)
          nfcSession?.alertMessage = "Hold your iPhone near the item to learn more about it."
          nfcSession?.begin()
  
      }
  
      func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
          // Check the invalidation reason from the returned error.
          if let readerError = error as? NFCReaderError {
              // Show an alert when the invalidation reason is not because of a
              // successful read during a single-tag read session, or because the
              // user canceled a multiple-tag read session from the UI or
              // programmatically using the invalidate method call.
              if (readerError.code != .readerSessionInvalidationErrorFirstNDEFTagRead)
                  &amp;&amp; (readerError.code != .readerSessionInvalidationErrorUserCanceled) {
                  let alertController = UIAlertController(
                      title: "Session Invalidated",
                      message: error.localizedDescription,
                      preferredStyle: .alert
                  )
                  alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
                  DispatchQueue.main.async {
                      self.present(alertController, animated: true, completion: nil)
                  }
              }
          }
  
          // To read new tags, a new session instance is required.
          self.nfcSession = nil
      }
      func readerSessionDidBecomeActive(_ session: NFCNDEFReaderSession) {
          print ("readerSessionDidBecomeActive")
  
      }
      func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
          // Parse the card's information
          /*
              ( // Payload one (There's only one payload in this card)
                  "TNF=1, /* Type Name Format */
                  Payload Type=&lt;55&gt;,
                  Payload ID=&lt;&gt;,
                  Payload=&lt;0048656c 6c6f21&gt;" /* What we're really interested in */
              )
           */
  
          var result = ""
             for payload in messages[0].records {
                 result += String.init(data: payload.payload.advanced(by: 3), encoding: .utf8)! // 1
             }
  
             DispatchQueue.main.async {
                 self.messageLabel.text = result
             }
  
      }
  }
  
  </code></pre>
  
  <p><strong>Console log:</strong></p>
  
  <pre><code>Started scanning for tags
  2019-12-30 17:35:33.709179+0530 nfcTest[2492:251252] [xpc.exceptions] &lt;NSXPCConnection: 0x281c92e20&gt; connection to service on pid 82 named com.apple.nfcd.service.corenfc: Exception caught during decoding of received selector didDetectExternalReaderWithNotification:, dropping incoming message.
  Exception: Exception while decoding argument 0 (#2 of invocation):
  Exception: decodeObjectForKey: class "NFFieldNotification" not loaded or does not exist
  (
      0   CoreFoundation                      0x000000018c7e5820 FF63481D-FB6A-353B-B2C1-AC4EAECF594D + 1226784
      1   libobjc.A.dylib                     0x000000018c50dfa4 objc_exception_throw + 56
      2   Foundation                          0x000000018ccd1390 3C682044-3249-3938-8111-F2F12D066D2B + 2339728
      3   Foundation                          0x000000018caaa4e4 3C682044-3249-3938-8111-F2F12D066D2B + 83172
      4   Foundation                          0x000000018ccf35dc 3C682044-3249-3938-8111-F2F12D066D2B + 2479580
      5   Foundation                          0x000000018caff62c 3C682044-3249-3938-8111-F2F12D066D2B + 431660
      6   Foundation                          0x000000018caff994 3C682044-3249-3938-8111-F2F12D066D2B + 432532
      7   Foundation                          0x000000018cae9d70 3C682044-3249-3938-8111-F2F12D066D2B + 343408
      8   Foundation                          0x000000018cccf1bc 3C682044-3249-3938-8111-F2F12D066D2B + 2331068
      9   libxpc.dylib                        0x000000018c3b3448 219DEC3C-E62E-395D-8911-FB74F73A5598 + 50248
      10  libxpc.dylib                        0x000000018c3b37c0 219DEC3C-E62E-395D-8911-FB74F73A5598 + 51136
      11  libdispatch.dylib                   0x0000000100d4ec98 _dispatch_client_callout4 + 16
      12  libdispatch.dylib                   0x0000000100d68aa8 _dispatch_mach_msg_invoke + 420
      13  libdispatch.dylib                   0x0000000100d55990 _dispatch_lane_serial_drain + 304
      14  libdispatch.dylib                   0x0000000100d698f8 _dispatch_mach_invoke + 520
      15  libdispatch.dylib                   0x0000000100d55990 _dispatch_lane_serial_drain + 304
      16  libdispatch.dylib                   0x0000000100d56718 _dispatch_lane_invoke + 500
      17  libdispatch.dylib                   0x0000000100d61adc _dispatch_workloop_worker_thread + 1324
      18  libsystem_pthread.dylib             0x000000018c502f88 _pthread_wqthread + 276
      19  libsystem_pthread.dylib             0x000000018c505ad4 start_wqthread + 8
  )
  (
      0   CoreFoundation                      0x000000018c7e5820 FF63481D-FB6A-353B-B2C1-AC4EAECF594D + 1226784
      1   libobjc.A.dylib                     0x000000018c50dfa4 objc_exception_throw + 56
      2   Foundation                          0x000000018ccf3828 3C682044-3249-3938-8111-F2F12D066D2B + 2480168
      3   Foundation                          0x000000018caff62c 3C682044-3249-3938-8111-F2F12D066D2B + 431660
      4   Foundation                          0x000000018caff994 3C682044-3249-3938-8111-F2F12D066D2B + 432532
      5   Foundation                          0x000000018cae9d70 3C682044-3249-3938-8111-F2F12D066D2B + 343408
      6   Foundation                          0x000000018cccf1bc 3C682044-3249-3938-8111-F2F12D066D2B + 2331068
      7   libxpc.dylib                        0x000000018c3b3448 219DEC3C-E62E-395D-8911-FB74F73A5598 + 50248
      8   libxpc.dylib                        0x000000018c3b37c0 219DEC3C-E62E-395D-8911-FB74F73A5598 + 51136
      9   libdispatch.dylib                   0x0000000100d4ec98 _dispatch_client_callout4 + 16
      10  libdispatch.dylib                   0x0000000100d68aa8 _dispatch_mach_msg_invoke + 420
      11  libdispatch.dylib                   0x0000000100d55990 _dispatch_lane_serial_drain + 304
      12  libdispatch.dylib                   0x0000000100d698f8 _dispatch_mach_invoke + 520
      13  libdispatch.dylib                   0x0000000100d55990 _dispatch_lane_serial_drain + 304
      14  libdispatch.dylib                   0x0000000100d56718 _dispatch_lane_invoke + 500
      15  libdispatch.dylib                   0x0000000100d61adc _dispatch_workloop_worker_thread + 1324
      16  libsystem_pthread.dylib             0x000000018c502f88 _pthread_wqthread + 276
      17  libsystem_pthread.dylib             0x000000018c505ad4 start_wqthread + 8
  )
  Session did invalidate with error: Error Domain=NFCError Code=202 "Session invalidated unexpectedly" UserInfo={NSLocalizedDescription=Session invalidated unexpectedly}
  </code></pre>
  
  <p>Reference link:</p>
  
  <ul>
  <li><a href="https://medium.com/better-programming/working-with-nfc-tags-in-ios-13-d08c7d183981" rel="nofollow noreferrer">https://medium.com/better-programming/working-with-nfc-tags-in-ios-13-d08c7d183981</a></li>
  <li><a href="https://github.com/x43x61x69/Core-NFC-Example" rel="nofollow noreferrer">https://github.com/x43x61x69/Core-NFC-Example</a></li>
  </ul>
  
  <p>Any help greatly appreciated.
  Thanks in advance.</p>