Known issues listed on this page and tagged with the latest official release version are valid for the current state of development. Use the drop-down filter to see known issues for previous releases and check if they are still valid.Filter by versions:
- NCSDK-6898: Setting
CONFIG_SECURE_BOOTdoes not work
The immutable bootloader is not able to find the required metadata in the MCUboot image. See the related NCSDK-6898 known issue in Build system for more details.
- External antenna performance setting
The preprogrammed Asset Tracker does not come with the best external antenna performance.
Workaround: If you are using nRF9160 DK v0.15.0 or higher and Thingy:91 v1.4.0 or higher, set
y. Alternatively, for nRF9160 DK v0.15.0, you can set the
AT%XCOEX0when building the preprogrammed Asset Tracker to achieve the best external antenna performance.
- NCSDK-5574: Warnings during FOTA
The nRF9160: Asset Tracker application prints warnings and error messages during successful FOTA.
- NCSDK-6689: High current consumption in Asset Tracker
The nRF9160: Asset Tracker application might show up to 2.5 mA current consumption in idle mode with
- Sending data before connecting to nRF Connect for Cloud
The nRF9160: Asset Tracker application does not wait for connection to nRF Connect for Cloud before trying to send data. This causes the application to crash if the user toggles one of the switches before the kit is connected to the cloud.
- IRIS-2676: Missing support for FOTA on nRF Connect for Cloud
The nRF9160: Asset Tracker application does not support the nRF Connect for Cloud FOTA_v2 protocol.
Workaround: The implementation for supporting the nRF Connect for Cloud FOTA_v2 can be found in the following commits:
- NCSDK-7856: Faulty indirection on
nrf_cc3xxmemory slab when freeing the platform mutex
mutex_free_platform()function has a bug where a call to
k_mem_slab_free()provides wrong indirection on a parameter to free the platform mutex.
Workaround: Write the call to free the mutex in the following way:
k_mem_slab_free(&mutex_slab, &mutex->mutex). The change adds
&before the parameter
- NCSDK-7914: The
nrf_cc3xxRSA implementation does not deduce missing parameters
The calls to
mbedtls_rsa_complete()will not deduce all types of missing RSA parameters when using
nrf_cc3xxv0.9.6 or earlier.
Workaround: Calculate the missing parameters outside of this function or update to
nrf_cc3xxv0.9.7 or later.
- NCSDK-8075: Invalid initialization of
The calls to
mbedtls_entropy_init()do not zero-initialize the member variable
Workaround: Zero-initialize the structure type before using it or make it a static variable to ensure that it is zero-initialized.
- NRF91-989: Unable to bootstrap after changing SIMs
In some cases, swapping the SIM card may trigger the bootstrap Pre-Shared Key to be deleted from the device. This can prevent future bootstraps from succeeding.
- NCSDK-5666: LTE Sensor Gateway
The nRF9160: LTE Sensor Gateway sample crashes when Thingy:52 is flipped.
nrf_send()function in the Modem library might be blocking for several minutes, even if the socket is configured for non-blocking operation. The behavior depends on the cellular network connection.
Workaround: For nRF Connect SDK v1.4.0, set the non-blocking mode for a partial workaround for non-blocking operation.
- GPS sockets and SUPL client library stops working
Workaround: Insert a delay (
k_sleep()) of a few seconds after the
printfon line 294 in
- Calling nrf_connect immediately causes fail
nrf_connect fails if called immediately after initialization of the device. A delay of 1000 ms is required for this to work as intended.
- Problems with RTT Viewer/Logger
The SEGGER Control Block cannot be found by automatic search by the RTT Viewer/Logger.
Workaround: Set the RTT Control Block address to 0 and it will try to search from address 0 and upwards. If this does not work, look in the
builddir/zephyr/zephyr.mapfile to find the address of the
_SEGGER_RTTsymbol in the map file and use that as input to the viewer/logger.
- Receive error with large packets
nRF91 fails to receive large packets (over 4000 bytes).
- Modem FW reset on debugger connection through SWD
If a debugger (for example, J-Link) is connected via SWD to the nRF9160, the modem firmware will reset. Therefore, the LTE modem cannot be operational during debug sessions.
- KRKNWK-6756: 802.15.4 Service Layer (SL) library support for the nRF53
The binary variant of the 802.15.4 Service Layer (SL) library for the nRF53 does not support such features as synchronization of TIMER with RTC or timestamping of received frames. For this reason, 802.15.4 features like delayed transmission or delayed reception are not available for the nRF53.
- FOTA does not work
FOTA with the SMP Server Sample does not work.
CMakeLists.txtfile for developing applications that emulate nRF52820 on the nRF52833 DK is missing.
Workaround: Create a
CMakeLists.txtfile in the
ncs/zephyr/boards/arm/nrf52833dk_nrf52820folder with the following content:
You can download this file from the upstream Zephyr repository. After you add it, the file is automatically included by the build system.
- KRKNWK-9094: Possible deadlock in shell subsystem
Issuing OpenThread commands too fast might cause a deadlock in the shell subsystem.
Workaround: If possible, avoid invoking a new command before execution of the previous one has completed.
- KRKNWK-6848: Reduced throughput
Performance testing for the Thread: Co-processor sample shows a decrease of throughput of around 10-20% compared with the standard OpenThread.
- KRKNWK-7885: Throughput is lower when using CC310 nrf_security backend
A decrease of throughput of around 5-10% has been observed for the CC310 nrf_security backend when compared with nrf_oberon or the standard mbedtls backend. CC310 nrf_security backend is used by default for nRF52840 boards. The source of throughput decrease is coupled to the cost of RTOS mutex locking when using the CC310 nrf_security backend when the APIs are called with shorter inputs.
Workaround: Use AES-CCM ciphers from the nrf_oberon backend by setting the following options:
- KRKNWK-7721: MAC counter updating issue
RxDestAddrFilteredMAC counter is not being updated. This is because the
PENDING_EVENT_RX_FAILEDevent is not implemented in Zephyr.
Workaround: To fix the error, cherry-pick commits from the upstream Zephyr PR #29226.
- KRKNWK-7962: Logging interferes with shell output
CONFIG_LOG_MINIMALis configured by default for most OpenThread samples. It accesses the UART independently from the shell backend, which sometimes leads to malformed output.
Workaround: Disable logging or enable a more advanced logging option.
- KRKNWK-7803: Automatically generated libraries are missing otPlatLog for NCP
When building OpenThread libraries using a different sample than the Thread: Co-processor sample, the
ncp_base.cppis not compiled with the
otPlatLog()function. This results in a linking failure when building the NCP with these libraries.
Workaround: Use the Thread: Co-processor sample to create OpenThread libraries.
- NCSDK-5014: Building with SES not possible
It is not possible to build Thread samples using SEGGER Embedded Studio (SES). SES does not support
.cppfiles in nRF Connect SDK projects.
- KRKNWK-6358: CoAP client sample provisioning issues
It is not possible to provision the Thread: CoAP Client sample to servers that it cannot directly communicate with. This is because Link Local Address is used for communication.
diagcommand not supported
diagcommand is not yet supported by Thread in the nRF Connect SDK.
- KRKNWK-7836: Coordinator asserting when flooded with ZDO commands
Executing a high number of ZDO commands can cause assert on the coordinator with the Zigbee shell component enabled.
- KRKNWK-7831: Factory reset broken on coordinator with Zigbee shell
A coordinator with the Zigbee shell component enabled could assert after executing the
Workaround: Call the
bdb_reset_via_local_actionfunction twice to remove all the network information.
- KRKNWK-7723: OTA upgrade process restarting after client reset
After the reset of OTA Upgrade Client, the client will start the OTA upgrade process from the beginning instead of continuing the previous process.
- KRKNWK-6318: Device assert after multiple Leave requests
If a device that rejoins the network receives Leave requests several times in a row, the device could assert.
- KRKNWK-6071: ZBOSS alarms inaccurate
On average, ZBOSS alarms last longer by 6.4 percent than Zephyr alarms.
Workaround: Use Zephyr alarms.
- KRKNWK-5535: Device assert if flooded with multiple Network Address requests
The device could assert if it receives Network Address requests every 0.2 second or more frequently.
- KRKNWK-6073: Potential delay during FOTA
There might be a noticeable delay (~220 ms) between calling the ZBOSS API and on-the-air activity.
- KRKNWK-9119: Zigbee shell does not work with ZBOSS development libraries
- DESK-978: Directed advertising issues with SoftDevice Link Layer
Directed advertising (
CONFIG_DESKTOP_BLE_DIRECT_ADV) should not be used by the nRF Desktop application when the SoftDevice Controller is in use, because that leads to reconnection problems. For more detailed information, see the
Known issues and limitationssection of the SoftDevice Controller’s Changelog.
The Kconfig option name changed from
CONFIG_CAF_BLE_ADV_DIRECT_ADVbeginning with the nRF Connect SDK v1.5.99.
Workaround: Directed advertising is disabled by default for nRF Desktop.
- NCSDK-8304: HID configurator issues for peripherals connected over Bluetooth LE to Linux host
Using HID configurator for nRF Desktop for peripherals connected to host directly over Bluetooth LE may result in receiving improper HID feature report ID. In such case, the device will provide HID input reports, but it cannot be configured with the HID configurator.
Workaround: Connect the nRF Desktop peripheral through USB or using the nRF Desktop dongle.
- DRGN-15435: GATT notifications and Writes Without Response might be sent out of order
GATT notifications and Writes Without Response might be sent out of order when not using a complete callback.
Workaround: Always set a callback for notifications and Writes Without Response.
- DRGN-15448: Incomplete bond overwrite during pairing procedure when peer is not using the IRK stored in the bond
When pairing with a peer that has deleted its bond information and is using a new IRK to establish the connection, the existing bond is not overwritten during the pairing procedure. This can lead to MIC errors during reconnection if the old LTK is used instead.
- NCSDK-8321: NUS shell transport sample does not display the initial shell prompt uart:~$ on the remote terminal.
Also few logs with sending errors are displayed on the terminal connected directly to the DK. This issue is caused by the shell being enabled before turning on the notifications for the NUS service by the remote peer.
Workaround: Enable the shell after turning on the NUS notifications or block it until turning on the notifications.
- NCSDK-8224: Callbacks for “security changed” and “pairing failed” are not always called
The pairing failed and security changed callbacks are not called when the connection is disconnected during the pairing procedure or the required security is not met.
Workaround: Application should use the disconnected callback to handle pairing failed.
- NCSDK-8223: GATT requests might deadlock RX thread
GATT requests might deadlock the RX thread when all TX buffers are taken by GATT requests and the RX thread tries to allocate a TX buffer for a response. This causes a deadlock because only the RX thread releases the TX buffers for the GATT requests. The deadlock is resolved by a 30 second timeout, but the ATT bearer cannot transmit without reconnecting.
- NCSDK-6845: Pairing failure with simultaneous pairing on multiple connections
When using LE Secure Connections pairing, the pairing fails with simultaneous pairing on multiple connections. The failure reason is unspecified.
Workaround: Retry the pairing on the connections that failed one by one after the pairing procedure has finished.
- NCSDK-6844: Security procedure failure can terminate GATT client request
A security procedure terminates the GATT client request that is currently in progress, unless the request was the reason to initiate the security procedure. If a new GATT client request is queued at this time, this might potentially cause a GATT transaction violation and fail as well.
Workaround: Do not initiate a security procedure in parallel with GATT client requests.
- NCSDK-5711: High-throughput transmission can deadlock the receive thread
High-throughput transmission can deadlock the receive thread if the connection is suddenly disconnected.
- Only secure applications can use Bluetooth LE
Bluetooth LE cannot be used in a non-secure application, for example, an application built for the
Workaround: Use the
nrf5340_dk_nrf5340_cpuappbuild target instead.
- Peripheral HIDS keyboard sample cannot be used with nRF Bluetooth LE Controller
The Bluetooth: Peripheral HIDS keyboard sample cannot be used with the SoftDevice Controller because the NFC subsystem does not work with the controller library. The library uses the MPSL Clock driver, which does not provide an API for asynchronous clock operation. NFC requires this API to work correctly.
- Peripheral HIDS mouse sample advertising issues
When the Bluetooth: Peripheral HIDS mouse sample is used with the Zephyr Bluetooth LE Controller, directed advertising does not time out and the regular advertising cannot be started.
- Central HIDS sample issues with directed advertising
The Bluetooth: Central HIDS sample cannot connect to a peripheral that uses directed advertising.
- Unstable samples
Bluetooth Low Energy peripheral samples are unstable in some conditions (when pairing and bonding are performed and then disconnections/re-connections happen).
When running the Bluetooth: Central DFU SMP sample, the
CONFIG_BT_SMPconfiguration must be aligned between this sample and the Zephyr counterpart (SMP Server Sample). However, security is not enabled by default in the Zephyr sample.
- Reconnection issues on some operating systems
On some operating systems, the nRF Desktop application is unable to reconnect to a host.
- Bluetooth: Central UART cannot handle long strings
A too long 212-byte string cannot be handled when entered to the console to send to Bluetooth: Peripheral UART.
- Bluetooth: Central HIDS loses UART connectivity
After programming a HEX file to the nrf52_pca10040 board, UART connectivity is lost when using the Bluetooth LE Controller. The board must be reset to get UART output.
- Samples crashing on nRF51 when using GPIO
On nRF51 devices, Bluetooth LE samples that use GPIO might crash when buttons are pressed frequently. In such case, the GPIO ISR introduces latency that violates real-time requirements of the Radio ISR. nRF51 is more sensitive to this issue than nRF52 (faster core).
- GATT Discovery Manager missing support
The GATT Discovery Manager is not supported on nRF51 devices.
- Samples do not work with SD Controller v0.1.0
Bluetooth LE samples cannot be built with the SoftDevice Controller v0.1.0.
- LED Button Service reporting issue
Bluetooth: Peripheral LBS does not report the Button 1 state correctly.
- MITM protection missing for central samples
- Peripheral UART string size issue
Bluetooth: Peripheral UART cannot handle the corner case that a user attempts to send a string of more than 211 bytes.
- Reconnection issues after bonding
The peripheral samples (Bluetooth: Peripheral UART, Bluetooth: Peripheral LBS, Bluetooth: Peripheral HIDS mouse) have reconnection issues after performing bonding (LE Secure Connection pairing enable) with nRF Connect for Desktop. These issues result in disconnection.
- NCSDK-5580: nRF5340 only supports SoftDevice Controller
On nRF5340, only the SoftDevice Controller is supported for Bluetooth mesh.
- NCSDK-7173: nRF5340 network core bootloader cannot be built stand-alone
The nRF5340: Network core bootloader sample does not compile when built stand-alone. It compiles without problems when included as a child image.
Workaround: Include the nRF5340: Network core bootloader sample as child image instead of compiling it stand-alone.
- Public keys revocation
Public keys are not revoked when subsequent keys are used.
- Incompatibility with nRF51
The bootloader does not work properly on nRF51.
- Immutable bootloader not supported in SES
Building and programming the immutable bootloader (see Secure bootloader chain) is not supported in SEGGER Embedded Studio.
- Immutable bootloader board restrictions
The immutable bootloader can only be used with the following boards:
- Immutable bootloader and netboot can overwrite non-OTP provisioning data
In architectures that do not have OTP regions, b0 and b0n images incorrectly linked to the size of their container can overwrite provisioning partition data from their image sizes. Issue related to NCSDK-7982.
- Missing files or permissions when building on Windows
Because of the Windows path length limitiations, the build can fail with errors related to permissions or missing files if some paths in the build are too long.
Workaround: Shorten the build folder name, e.g. from “build_nrf5340dk_nrf5340_cpuappns” to “build”, or shorten the path to the build folder in some other way.
- NCSDK-6898: Overriding child images
Adding child image overlay from the
CMakeLists.txttop-level file located in the
samplesdirectory overrides the existing child image overlay.
Workaround: Apply the configuration from the overlay to the child image manually.
- NCSDK-6777: Project out of date when
.zipfile is regenerated even when no changes are made to the files it depends on. As a consequence, SES displays a “Project out of date” message even when the project is not out of date.
Workaround: Apply the fix from sdk-nrf PR #3241.
- NCSDK-6848: MCUboot must be built from source when included
- KRKNWK-7827: Application build system is not aware of the settings partition
The application build system is not aware of partitions, including the settings partition, which can result in application code overlapping with other partitions. As a consequence, writing to overlapping partitions might remove or damage parts of the firmware, which can lead to errors that are difficult to debug.
Workaround: Define and use a code partition to shrink the effective flash memory available for the application. You can use one of the following solutions:
Partition Manager from nRF Connect SDK - see the page for all configuration options. For example, for single image (without bootloader and with the settings partition used), set the
CONFIG_PM_SINGLE_IMAGEKconfig option to
yand define the value for
CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGEto the required settings storage size.
- NCSDK-6117: Build configuration issues
Workaround: Either include MCUboot in the build or use MCUboot instead of the immutable bootloader.
- Flash commands only program one core
ninja flashonly program one core, even if multiple cores are included in the build.
Workaround: Execute the flash command from inside the build directory of the child image that is placed on the other core (for example,
- NCSDK-8232: Secure Partition Manager and application building together
It is not possible to build and program Secure Partition Manager and the application individually.
- NCSDK-7982: partition manager: Incorrect partition size linkage from name conflict
Partition manager will incorrectly link a partition’s size to the size of its container if the container partition’s name matches its child image’s name in
CMakeLists.txt. This can cause the inappropriately-sized partition to overwrite another partition beyond its intended boundary.
Workaround: Rename the container partitions in the
pm_static.ymlfiles to something that does not match the child images’ names, and rename the child images’ main image partition to its name in
- NCSDK-6238: Socket API calls may hang when using Download client
When using the Download client library with HTTP (without TLS), the application might not process incoming fragments fast enough, which can starve the Modem library buffers and make calls to the Modem library hang. Samples and applications that are affected include those that use Download client to download files through HTTP, or those that use FOTA download with modem updates enabled.
- Jobs not received after reset
When using AWS FOTA, no new jobs are received on the device if the device is reset during a firmware upgrade or loses the MQTT connection.
Workaround: Delete the stalled in progress job from AWS IoT.
- Stalled download
FOTA download does not resume a download if the device loses the connection.
fota_download_start()again with the same arguments when the connection is re-established to resume the download.
- Offset not retained with an MCUboot target
When using the MCUboot target in DFU target, the write/downloaded offset is not retained when the device is reset.
- Download stopped on socket connection timeout
In the nRF9160: AWS FOTA and nRF9160: HTTP application update samples, the download is stopped if the socket connection times out before the modem can delete the modem firmware. A fix for this issue is available in commit 38625ba7.
fota_download_start()again with the same arguments.
- Update event triggered by an error event
If the last fragment of a FOTA download is received but is corrupted, or if the last write is unsuccessful, the library emits an error event as expected. However, it also emits an apply/request update event, even though the downloaded data is invalid.
- FW upgrade is broken for multi-image builds
Firmware upgrade using mcumgr or USB DFU is broken for multi-image builds, because the devicetree configuration is not used. Therefore, it is not possible to upload the image.
Workaround: Build MCUboot and the application separately.
- Sample incompatibility with the nRF5340 PDK
The NFC: TNEP poller and NFC: Tag reader samples cannot be run on the nRF5340 PDK. There is an incorrect number of pins defined in the MDK files, and the pins required for NFC Reader ST25R3911B cannot be configured properly.
- Unstable NFC tag samples
NFC tag samples are unstable when exhaustively tested (performing many repeated read and/or write operations). NFC tag data might be corrupted.
- NCSIDB-114: Default logging causes crash
Enabling default logging in the Secure Partition Manager sample makes it crash if the sample logs any data after the application has booted (for example, during a SecureFault, or in a secure service). At that point, RTC1 and UARTE0 are non-secure.
Workaround: Do not enable logging and add a breakpoint in the fault handling, or try a different logging backend.
- Recovery with the USB does not work
The MCUboot recovery feature using the USB interface does not work.
- NCSDK-5883: CMAC behavior issues
CMAC glued with multiple backends may behave incorrectly due to memory allocation issues.
Workaround: Disable glued CMAC and use only one of the enabled backends.
- NCSDK-5546: Oberon missing symbols for HKDF
nRF Oberon v3.0.5 is missing symbols for HKDF using SHA1, which will be fixed in an upcoming version of the library.
Workaround: Use a different backend (for example, vanilla mbed TLS) for HKDF/HMAC using SHA1.
- Limited support for Nordic Security Module
The Nordic Security Module is currently only fully supported on nRF52840 and nRF9160 devices. It gives compile errors on nRF52832, nRF52833, nRF52820, nRF52811, and nRF52810.
Workaround: To fix the errors, cherry-pick commits in nrfxlib PR #205.
- Glue layer symbol renaming issue
The Nordic Security Module glue layer is broken because symbol renaming is not handled correctly. Therefore, the behavior is undefined when selecting multiple back-ends for the same algorithm (for example, AES).
- Cold start and A-GPS data not supported
Forcing a cold start and writing A-GPS data is not yet supported.
- Hard-fault with GPS in running mode
Implementation might hard-fault when GPS is in running mode and messages are not read fast enough.
- NMEA strings might return wrong length
NMEA strings are valid c-strings (0-terminated), but the read function might return wrong length.
- Closing sockets
Sockets can only be closed when GPS is in stopped mode. Moreover, closing a socket does not properly clean up all memory resources. If a socket is opened and closed multiple times, this might starve the system.
- DRGN-15223: CONFIG_SYSTEM_CLOCK_NO_WAIT is not supported for nRF5340
CONFIG_SYSTEM_CLOCK_NO_WAITwith nRF5340 devices might not work as expected.
- DRGN-15176: CONFIG_SYSTEM_CLOCK_NO_WAIT is ignored when Low Frequency Clock is started before initializing MPSL
If the application starts the Low Frequency Clock before calling
mpsl_init(), the clock configuration option
CONFIG_SYSTEM_CLOCK_NO_WAIThas no effect. MPSL will wait for the Low Frequency Clock to start.
CONFIG_SYSTEM_CLOCK_NO_WAITis set, do not start the Low Frequency Clock.
- DRGN-15064: External Full swing and External Low swing not working
Even though the MPSL Clock driver accepts a Low Frequency Clock source configuration for External Full swing and External Low swing, the clock control system is not configured correctly. For this reason, do not use
- DRGN-6362: Do not use the synthesized low frequency clock source
The synthesized low frequency clock source is neither tested nor intended for usage with MPSL.
- DRGN-14153: Radio Notification power performance penalty
The Radio Notification feature has a power performance penalty proportional to the notification distance. This means an additional average current consumption of about 600 µA for the duration of the radio notification.
- DRGN-11059: Front-end module API not implemented for SoftDevice Controller
Front-end module API is currently not implemented for SoftDevice Controller. It is only available for 802.15.4.
- KRKNWK-8842: MPSL does not support nRF21540 revision 1 or older
The nRF21540 revision 1 or older is not supported by MPSL. This also applies to kits that contain this device.
Workaround: Check nordicsemi.com for the latest information on availability of the product version of nRF21540.
- KRKNWK-6255: RSSI parameter adjustment is not applied
The RADIO: RSSI parameter adjustment errata (153 for nRF52840, 225 for nRF52833 and nRF52820, 87 for nRF5340) are not applied for RSSI, LQI, Energy Detection, and CCA values used by the 802.15.4 protocol. There is an expected offset up to +/- 6 dB in extreme temperatures of values based on RSSI measurement.
- KRKNWK-8133: CSMA-CA issues
Using CSMA-CA with the open-source variant of the 802.15.4 Service Layer (SL) library causes an assertion fault. CSMA-CA support is currently not available in the open-source SL library.
- DRGN-15465: Corrupted advertising data when
Setting scan response data for a legacy advertiser on a build with extended advertising support corrupts parts of the advertising data. When using
BT_LE_ADV_OPT_USE_NAME(which is the default configuration in most samples), the device name is put in the scan response. This corrupts the advertising data.
Workaround: Do not set scan response data. That implies not using the
BT_LE_ADV_OPT_USE_NAMEoption, or the
BT_LE_ADV_CONN_NAMEmacro when initializing Bluetooth. Instead, use
BT_LE_ADV_CONN, and if necessary set the device name in the advertising data manually.
- DRGN-15475: Samples might not initialize the SoftDevice Controller HCI driver correctly
Samples using both the advertising and the scanning state, but not the connected state, fail to initialize the SoftDevice Controller HCI driver. As a result, the function
bt_enable()returns an error code.
Workaround: Manually enable
CONFIG_SOFTDEVICE_CONTROLLER_MULTIROLEfor the project configuration.
- DRGN-15382: The SoftDevice Controller cannot be qualified on nRF52832
The SoftDevice Controller cannot be qualified on nRF52832.
Workaround: Upgrade to v1.5.1 (once available) or use the master branch.
- DRGN-15226: Link disconnects with reason “LMP Response Timeout (0x22)”
If the slave receives an encryption request while the “HCI LE Long Term Key Request” event is disabled, the link disconnects with the reason “LMP Response Timeout (0x22)”. The event is disabled when
- DRGN-11963: LL control procedures cannot be initiated at the same time
The LL control procedures (LE start encryption and LE connection parameter update) cannot be initiated at the same time or more than once. The controller will return an HCI error code “Controller Busy (0x3a)”, as per specification’s chapter 2.55.
Workaround: Do not initiate these procedures at the same time.
- DRGN-13921: Directed advertising issues using RPA in TargetA
The SoftDevice Controller will generate a resolvable address for the TargetA field in directed advertisements if the target device address is in the resolving list with a non-zero IRK, even if privacy is not enabled and the local device address is set to a public address.
Workaround: Remove the device address from the resolving list.
- DRGN-10367: Advertiser times out earlier than expected
If an extended advertiser is configured with limited duration, it will time out after the first primary channel packet in the last advertising event.
CONFIG_BT_HCI_TX_STACK_SIZErequires specific value
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZErequires specific value
CONFIG_NFCT_IRQ_PRIORITYrequires specific value
- Several issues for nRF5340
The following issues can occur when using SoftDevice Controller with nRF5340:
Poor performance when performing active scanning.
The controller could assert when receiving extended advertising packets.
T_IFScould in certain conditions be off by 5 us.
The radio could stay in the TX state longer than expected. This issue can only occur when sending a packet on either LE 1M or LE 2M PHY after receiving or transmitting a packet on LE Coded PHY. If this occurs while performing a Link Layer Control Procedure, the controller could end up retransmitting an acknowledged packet, resulting in a disconnect.
- Sending control packet twice
A control packet could be sent twice even after the packet was acknowledged. This would only occur if the radio was forced off due to an unforeseen condition.
- Wait time required after a directed high duty cycle advertiser times out
The application is unable to restart a connectable advertiser right after a high-duty-cycle advertiser times out.
Workaround: Wait 500 ms before restarting a connectable advertiser
- Assert risk after performing a DLE procedure
The controller could assert when receiving a packet with a CRC error on LE Coded PHY after performing a DLE procedure where RX Octets is changed to a value above 140.
- Assert when using HCI LE Set Extended Advertising Parameters
The controller will assert when setting secondary PHY to 0 when using HCI LE Set Extended Advertising Parameters and the advertising type is set to legacy advertising.
- HCI issues with duplicate filtering
HCI LE Set Extended Scan Enable returns UNSUPPORTED_FEATURE when duplicate filtering is enabled.
- HCI issues with secondary_max_skip
HCI LE Set Advertising Parameters returns UNSUPPORTED_FEATURE when secondary_max_skip is set to a non-zero value.
- No data issue when connected to multiple devices
hci_data_get()may return “No data available” when there is data available. This issue will only occur when connected to multiple devices at the same time.
- Assert on LE Write Suggested Default Data Length
The controller will assert if the host issues LE Write Suggested Default Data Length.
- HCI LE Set Privacy Mode appears as not supported
The controller does not indicate support for HCI LE Set Privacy Mode although it is supported.
- Assert if advertising data is set after HCI Reset
The controller will assert if advertising data is set after HCI Reset without first setting advertising parameters.
- Assert on writing to flash
The controller may assert when writing to flash.
- Timeout without sending packet
A directed advertiser may time out without sending a packet on air.
- Incorrect pin definition for nRF5340
For nRF5340, the pins P1.12 to P1.15 are unavailable due to an incorrect pin number definition in the MDK.
- Samples might be swapped
Samples might be swapped when buffer is set after starting the sample process, when more than one channel is sampled. This can happen when the sample task is connected using PPI and setting buffers and sampling are not synchronized.
- RX and TX not disabled in uninit
The driver does not disable RX and TX in uninit, which can cause higher power consumption.
- NCSDK-6330: USB Mass Storage Sample Application fails MSC Tests from USB3CV test tool
USB Mass Storage Sample Application fails the USB3CV compliance Command Set Test from the MSC Tests suite.
- NCSDK-6328: USB CDC ACM Composite Sample Application fails Chapter 9 Tests from USB3CV test tool
USB CDC ACM Sample Composite Application fails the USB3CV compliance TD 9.1: Device Descriptor Test from the Chapter 9 Test suite.
- NCSDK-6331: WebUSB sample application fails Chapter 9 Tests from USB3CV test tool
WebUSB sample application fails the USB3CV compliance TD 9.21: LPM L1 Suspend Resume Test from the Chapter 9 Test suite.
- NCSIDB-108: Thread context switch might lead to a kernel fault
If the Zephyr kernel preempts the current thread and performs a context switch to a new thread while the current thread is executing a secure service, the behavior is undefined and might lead to a kernel fault. To prevent this situation, a thread that aims to call a secure service must temporarily lock the kernel scheduler (
k_sched_lock()) and unlock the scheduler (
k_sched_unlock()) after returning from the secure call.
- Counter Alarm sample does not work
- USB Mass Storage Sample Application compilation issues
USB Mass Storage Sample Application does not compile.
- NCSDK-6852: Extra CMake options might not be applied in version 5.10d
If you specify Extra CMake Build Options in the Open nRF Connect SDK Project dialog and at the same time select an nRF Connect Toolchain Version of the form
X.Y.Z, the additional CMake options are discarded.
NONE (Use SES settings / environment PATH)from the nRF Connect Toolchain Version drop-down if you want to specify Extra CMake Build Options.
- NCSDK-8372: Project name collision causes SES Nordic Edition to load the wrong project
Some samples that are located in different folders use the same project name. For example, there is a
light_switchproject both in the
samples/bluetooth/mesh/folder and in the
samples/zigbee/folder. When you select one of these samples from the project list in the Open nRF Connect SDK Project dialog, the wrong sample might be selected. Check the Build Directory field in the dialog to see if this is the case. The field indicates the path to the project that SES Nordic Edition will load.
Workaround: If the path in Build Directory points to the wrong project, select the correct project by using the … button for Projects and navigating to the correct project location. The build directory will update automatically.
In addition to these known issues, check the current issues in the official Zephyr repository, since these might apply to the nRF Connect SDK fork of the Zephyr repository as well. To get help and report issues that are not related to Zephyr but to the nRF Connect SDK, go to Nordic’s DevZone.