# Ignition 8.3.4 Nullability Annotations

**URL:** <https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103>\
**Category:** Module Development\
**Created:** [January 6, 2026, 7:08pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103 "2026-01-06T19:08:41Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [January 6, 2026, 7:08pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103/1 "2026-01-06T19:08:41Z")

</div>

In Ignition 8.3.4, we've standardized our nullability annotations on [JSpecify](https://jspecify.dev/). As part of this change, we removed the JSR 305 (`javax.annotation`) and JetBrains (`org.jetbrains.annotations`) annotation dependencies from the platform.

### Who is affected?

This only affects module developers who use nullability annotations like `@Nullable`, `@Nonnull`, `@NotNull`, etc. in their code. If you don't use these annotations, no action is needed.

### What you need to do

If your module uses JSR 305 or JetBrains nullability annotations and you were relying on them being available transitively through the Ignition SDK, you have two options:

**Option 1: Declare the dependency explicitly**

Add the dependency to your `build.gradle`:

```groovy

// For JSR 305

implementation 'com.google.code.findbugs:jsr305:3.0.2'

// Or for JetBrains annotations

implementation 'org.jetbrains:annotations:24.0.0'

```

**Option 2: Migrate to JSpecify**

We recommend migrating to JSpecify for consistency with the platform:

```java

// Old

import javax.annotation.Nullable;

import org.jetbrains.annotations.NotNull;

// New

import org.jspecify.annotations.Nullable;

import org.jspecify.annotations.NonNull;

```

Note that JSpecify uses `@NonNull` rather than `@Nonnull` or `@NotNull`.

JSpecify should come in transitively via the dependency on `ignition-common` from the SDK.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [January 6, 2026, 7:12pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103/2 "2026-01-06T19:12:52Z")

</div>

This is already available if you switch your SDK dependency to `8.3.4-SNAPSHOT`.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 6, 2026, 7:14pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103/3 "2026-01-06T19:14:17Z")

</div>

There's enough stuff coming in v8.3.4 that I think it will be my support baseline. FWIW.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [January 6, 2026, 7:15pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103/4 "2026-01-06T19:15:04Z")

</div>

Yeah it's going to be a good version 🙂

I don't _think_ that modules compiled for previous versions need to be updated or recompiled for 8.3.4, but I haven't been able to verify that yet.

It's just that if you do use these annotations, and you've updated your Ignition SDK dependency to 8.3.4, you may find some changes are needed.
