SShortSingh.
Back to feed

Why Clio OAuth tokens fail: two systems, four regions, and rotation rules

0
·1 views

Developers integrating with Clio's API often encounter 401 errors due to confusion between its two OAuth systems: the older Clio Manage, with 30-day access tokens and stable refresh tokens, and the newer Clio Platform, with 24-hour access tokens that rotate on every refresh. Failing to save the new refresh token after each Platform API call immediately invalidates the old one, causing silent authentication failures. Clio also operates four separate regional instances — US, EU, Canada, and Australia — and tokens issued in one region are not valid in another, with each region requiring its own registered app credentials. On the Manage system, a firm administrator revoking access from within Clio settings deauthorizes both access and refresh tokens permanently, unlike an app-initiated revocation which only invalidates the supplied access token. Developers are advised to always read the expires_in value from each response rather than hardcoding token lifetimes, and to account for regional deployments before assuming a token or code is at fault.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

3D Printing Tip: Adding Surface Texture Hides Print Lines Better Than Sanding

A maker with two years of 3D printing experience found that sanding to remove print lines was slow and damaged fine details on organic models like figures and terrain. The key insight was that print lines appear prominent because they are a regular, repeating pattern against an otherwise blank surface, making them visually conspicuous. By covering the entire surface with irregular relief textures such as wood grain, stone, or stipple, the print lines lose contrast and stop standing out. The maker now runs STL files through a browser-based 3D file upscaler that bakes real surface geometry into the mesh, requiring no software installation or account. This approach works across filaments and slicers, though mirror-smooth or manufactured-look parts still require traditional sanding or chemical smoothing.

0
ProgrammingDEV Community ·

Developer ships first Rust AI agent runtime, fixes two CI failures within 20 minutes

A developer publicly released AgentOS v0.1.0-alpha, a 10-crate Rust runtime layer for AI agents, after keeping the repository private during development. Within minutes of going public, CI flagged a Clippy lint error where a HashMap was being iterated unnecessarily with key-value pairs instead of the cleaner .values() method, which was resolved with a one-line fix. A second failure emerged during the release workflow when cross-compiling for Linux arm64 failed due to missing OpenSSL headers on the x86_64 GitHub Actions runner. Rather than rush a potentially risky fix to a security-sensitive dependency under time pressure, the developer chose to drop the arm64 target from the initial release and ship binaries for the four remaining platforms. The arm64 issue has been filed as a tracked issue, with the leading proposed fix being a migration from openssl-sys to the pure-Rust rustls library to eliminate system OpenSSL dependencies across all targets.

0
ProgrammingDEV Community ·

Open-source benchmark pits Kimi K3 against Claude models on real code quality

Developers at Dsplce released an open-source benchmark this week to compare Kimi K3, Claude Fable 5, and Claude Opus 4.8 on practical code quality rather than leaderboard scores alone. The test challenged each model to make a double-entry ledger module production-ready, adding transaction reversal and statement generation features. A hidden test suite checked for genuine money-safety issues — including atomicity failures, floating-point drift, and an internal accessor leak — that the visible tests did not cover. All three models successfully fixed the atomicity bug, implemented the reversal feature, and patched the accessor leak across nine total runs. Differences in code quality and long-term maintainability only emerged on harder evaluation criteria, with the benchmark publicly available on GitHub for anyone to run.

0
ProgrammingDEV Community ·

Kdrant 1.1.0 brings coroutine-native Kotlin client for Qdrant vector database

A new open-source library called Kdrant has been released as a Kotlin-idiomatic client for the Qdrant vector database, published to Maven Central under version 1.1.0. Unlike the official Java client, which relies on ListenableFuture, gRPC, and protobuf builders, Kdrant is built around Kotlin coroutines and type-safe DSLs. The library uses a lightweight REST engine powered by Ktor and kotlinx-serialization, requiring no gRPC or Netty dependencies, and needs JDK 17 or higher. It supports Qdrant features including hybrid search, filtered queries, batch operations, and scroll via Kotlin Flow. Kdrant also ships integrations for Spring Boot, Spring AI, and LangChain4j to simplify adoption in existing JVM projects.

Why Clio OAuth tokens fail: two systems, four regions, and rotation rules · ShortSingh