Atmos License States, Grace Periods, and Access Control Explained
Learn how Atmos handles activation, offline verification, subscription grace periods, blocked states, and the hidden app behavior behind each license status.
Atmos License States, Grace Periods, and Access Control Explained
Atmos does not treat licensing as a simple on or off switch.
Instead, the app moves through a small set of clearly defined license states. Some of those states allow the app to keep working normally. Some allow it to keep working temporarily while asking you to reconnect or renew. Others block access entirely until the underlying issue is resolved.
This guide explains how that system works in practice, what users see on screen, and which hidden behaviors matter behind the scenes.
Atmos starts by checking local license data
When Atmos launches, it does not immediately depend on a live server response just to decide whether the app can open.
It first checks locally stored license information:
- the saved license key
- the saved signed token
- the token expiration state
- the app’s own integrity status
That local-first design matters because it allows Atmos to verify valid licenses offline instead of forcing a fresh network round-trip every time the app starts.
Activation is a user-initiated step
If no valid local license data exists, Atmos shows the activation flow.
That activation screen asks for a license key and sends an activation request to the validation endpoint. If the response is valid, Atmos stores:
- the normalized license key
- the signed token returned by the server
- the timestamp of the last successful validation
After that, the app can move into an active state.
A valid token can keep the app active offline
One of the more important hidden behaviors in Atmos is that a valid token can be verified fully offline.
Atmos includes a public key in the app and uses it to verify the signature and expiration time of the stored token. If the token is still valid, the app does not need to ask the server again just to stay usable.
That means a user with a valid current token can launch the app without needing a live internet connection every single time.
The main license states in Atmos
Atmos can move through several distinct license states:
checkingnot activatedactiveoffline gracesubscription expiredsubscription endedrevokeddevice limitnetwork requiredlocked
Those states are not cosmetic labels. They directly control which screens appear, whether the main app stays available, and whether Atmos disables its background systems.
What active means
Active is the normal working state.
In this state, Atmos has a valid license token and everything behaves as expected. Audio, backgrounds, widgets, cursor skins, and effects can all continue running.
This is the state users will spend most of their time in.
What not activated means
Not activated means Atmos does not have a usable local license for this device.
That can happen when:
- the app has never been activated
- the saved license key was removed
- the saved token was cleared
- the license became invalid and Atmos reset local activation data
In this state, the user sees the activation screen instead of the normal app content.
Offline grace is a separate state
Atmos has a dedicated offline grace state for a very specific scenario:
- the signed token has expired
- the app cannot refresh it immediately
- the last successful license check happened recently enough to allow a grace window
The offline grace window is 24 hours.
If Atmos sees that the token is no longer current but the app was successfully checked recently, it allows the app to keep running temporarily and shows a small banner asking the user to reconnect.
Hidden behavior: offline grace does not block the app immediately
This is one of the more user-friendly parts of the licensing system.
When offline grace is active, Atmos does not immediately shut everything down. The app still renders the main content, and the user gets a banner instead of a lock screen.
That is important because it prevents a brief network interruption from instantly killing the product experience.
Subscription grace is different from offline grace
Atmos also has a separate grace state for subscription expiration.
If the server reports that the subscription is no longer active, the app checks how many days have passed since expiration. If the user is still within the 7-day renewal window, Atmos enters a subscription expired state rather than immediately cutting off access.
In that state:
- the main app still opens
- the user sees a renewal banner
- Atmos continues to run while the grace period remains
This is conceptually different from offline grace. Offline grace is about temporary verification delay. Subscription grace is about temporary access after billing has lapsed.
What subscription ended means
Once the 7-day subscription grace period is over, Atmos moves to subscription ended.
At that point, the app no longer treats the user as temporarily recoverable inside the normal experience. Instead, it falls back to the activation flow and blocks the ordinary content until the subscription issue is resolved.
That makes subscription ended the hard cutoff that follows the softer subscription grace state.
What revoked means
Revoked means the license was explicitly disabled on the server side.
This is not a temporary sync issue. It is an intentional server decision, and Atmos treats it that way.
When a revoked response is received, the app clears the local token, clears the saved license key, and moves into a disabled state with a support-oriented message.
What device limit means
Device limit means the license has reached its allowed number of active devices.
This usually happens when the key is already active somewhere else and no additional activation slot is available.
Atmos surfaces this as a blocked state rather than pretending activation partially succeeded. That keeps the message clear and avoids confusing half-licensed behavior.
What network required means
Network required appears when Atmos can no longer safely trust the local state and the offline grace window has already expired.
In other words:
- the local token is no longer valid
- the app cannot keep extending trust indefinitely
- the user needs to reconnect so Atmos can verify the license again
This state blocks the normal experience until the app can complete a fresh verification.
What locked means
Locked is the most severe license state in the app.
This is used for tamper detection or unrecoverable integrity failure. On launch, Atmos checks whether a debugger is attached in release builds and whether the app’s own code signature is still valid.
If that integrity check fails, Atmos stores a tamper flag and treats the app as locked.
This is not presented as a normal account issue. It is treated as a trust and integrity problem.
Hidden behavior: blocked states disable Atmos systems behind the scenes
One of the most important implementation details is that Atmos does more than change the visible screen when access is blocked.
For blocked states, the app also disables its background systems so they do not keep running invisibly. That includes the systems responsible for things like:
- ambient audio
- backgrounds
- cursor systems
- widgets
This means Atmos is not simply hiding the interface while leaving the effects active underneath.
Which states keep the app running
Atmos keeps the app operational in these states:
activeoffline gracesubscription expired
Those are the usable states.
In those cases, Atmos either fully trusts the current license or is deliberately allowing temporary continued access while the user reconnects or renews.
Which states block the app
Atmos disables the main experience in these states:
not activatedsubscription endedrevokeddevice limitnetwork requiredlocked
Those are the states where the app either cannot establish valid entitlement or should not continue running.
Atmos refreshes licenses in the background
Atmos does not only validate on explicit activation.
Once the app is running, it also performs background refresh checks. It watches for network availability and also performs periodic validation roughly every 30 minutes while the app remains open.
That lets Atmos react to things like:
- subscription expiry
- license revocation
- device removal
- server-issued token refresh
without requiring the user to restart the app manually.
Hidden behavior: transient server errors do not immediately punish active users
Another useful detail is that temporary server failures do not automatically throw active users into a broken state.
If the app encounters a transient network or server error during background refresh, it generally leaves the current state alone instead of aggressively downgrading access.
That makes the licensing system calmer and more resilient in real-world conditions.
What happens if a device is removed remotely
Atmos has a specific path for device removal as well.
If the server reports that this device was removed, the app clears the stored token, clears the stored license key, removes its recent-check timestamp, and returns to a non-activated state.
That means the device is treated as fully deauthorized rather than merely warned.
What users see in grace states
Atmos uses banners for grace states instead of immediately replacing the whole interface.
That means users can continue using the app while still being clearly informed about what needs attention.
For example:
- offline grace shows a reconnect-style banner
- subscription grace shows a renewal-style banner
This is a better experience than abruptly hiding everything the moment a recoverable issue appears.
What users see in blocked states
For blocked states, Atmos swaps to a dedicated message screen.
Depending on the issue, that screen explains whether the problem is:
- lack of activation
- device limit
- license revocation
- missing network verification
- invalid or tampered license state
Some of those screens also direct the user toward support, which makes sense because not every blocked state can be solved by simply typing the same key again.
Where license data is stored locally
Atmos stores both the token and the license key in its Application Support directory.
The app also contains migration logic for older storage formats, which means legacy local data can be moved forward instead of simply being abandoned.
That migration work is not flashy, but it is useful. It helps existing users survive internal storage changes without losing access unexpectedly.
Why this licensing model feels more polished than a simple gate
The Atmos licensing system is careful about edge cases.
It distinguishes between:
- never activated
- temporarily offline
- temporarily expired
- fully ended
- explicitly revoked
- over device limit
- integrity failure
That gives the app room to respond in a more human way.
Instead of treating every problem like the same generic lockout, Atmos can decide whether the right response is:
- keep running
- keep running with a warning
- ask for reactivation
- fully block access
That is the main reason the system feels more deliberate than a basic license gate.
What users should take away
If you are using Atmos day to day, the practical rules are simple:
- a valid token keeps the app active
- a short network outage does not necessarily stop the app immediately
- subscription expiration includes a limited grace period
- serious issues like revocation, device limit, or tamper failure block access
- blocked states also disable Atmos systems behind the scenes, not just the visible window
Once you understand those rules, the licensing system becomes much easier to read.
It is not random, and it is not arbitrary. Atmos is following a defined state machine that tries to balance security, recoverability, and a smoother user experience.
Atmos Journal
More posts, product updates, and deep dives from the team.