# Error Messages

Published articles for Error Messages.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How to Document Error Messages and Error Codes for Users and AI Agents

DevFeed: [How to Document Error Messages and Error Codes for Users and AI Agents](<https://devfeed.tech/articles/how-to-document-error-messages-and-error-codes-for-users-and-ai-agents-40956.md>)

Original publisher: [Read original article](<https://document360.com/blog/error-message-documentation/>)

Author: Selvaraaju Murugesan

Published: 2026-09-08T12:41:27Z

Content type: tutorial

Language: en

Sources: [Knowledge Management Tips, Best Practices and More](<https://devfeed.tech/sources/knowledge-management-tips-best-practices-and-more.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [API](<https://devfeed.tech/topics/api.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [how-to](<https://devfeed.tech/tags/how-to.md>)

### AI overview

This tutorial explains how to document error messages and error codes for users and AI agents. It recommends actionable messages that identify causes and next steps, distinguishes messages from stable error codes and documentation pages, and gives an API-key permission example.

### Source excerpt

Error messages often frustrate users and AI agents. A good error message helps ... The post How to Document Error Messages and Error Codes for Users and AI Agents appeared first on Document360.

## Introducing Dejavu: Recomposition Testing for Jetpack Compose

DevFeed: [Introducing Dejavu: Recomposition Testing for Jetpack Compose](<https://devfeed.tech/articles/introducing-dejavu-recomposition-testing-for-jetpack-compose-27344.md>)

Original publisher: [Read original article](<https://blog.mmckenna.me/introducing-dejavu>)

Author: Matt McKenna

Published: 2026-03-09T19:26:54Z

Content type: release

Language: en

Sources: [Matt McKenna](<https://devfeed.tech/sources/matt-mckenna.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>)

Tags: [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [diagnostics](<https://devfeed.tech/tags/diagnostics.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [recomposition](<https://devfeed.tech/tags/recomposition.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

The article introduces Dejavu, a testing tool for Jetpack Compose that turns recomposition behavior into test assertions. It describes asserting expected recomposition counts, receiving diagnostic information on failures, and using CompositionTracer without production-code instrumentation, a compiler plugin, bytecode manipulation, or a Gradle plugin.

### Source excerpt

Where This Idea Came From At Square, most of the app is built on Workflow. There is an internal testing framework that lets you assert exactly how many render passes are triggered for a given interact

## Introducing Metro, a Kotlin compiler-plugin dependency injection framework

DevFeed: [Introducing Metro, a Kotlin compiler-plugin dependency injection framework](<https://devfeed.tech/articles/introducing-metro-39038.md>)

Original publisher: [Read original article](<https://www.zacsweers.dev/introducing-metro/>)

Author: Zac Sweers

Published: 2025-04-03T16:14:23Z

Content type: article

Language: en

Sources: [Zac Sweers](<https://devfeed.tech/sources/zac-sweers.md>)

Topics: [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [build performance](<https://devfeed.tech/topics/build-performance.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>)

Tags: [anvil](<https://devfeed.tech/tags/anvil.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [build-performance](<https://devfeed.tech/tags/build-performance.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [dagger](<https://devfeed.tech/tags/dagger.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [metro](<https://devfeed.tech/tags/metro.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

The article introduces Metro, a Kotlin compiler-plugin framework for compile-time dependency injection. It combines ideas from Dagger, Anvil, and Kotlin-Inject, and describes features including dependency graph validation, code generation, multiplatform support, IDE integration, and diagnostics. The author reports benchmarked build-time improvements in a CatchUp app and notes that Metro 0.1.1 is in active development.

### Source excerpt

I'm excited to share something new I've been working on the past few months!

## My First 4 months at Bazaarvoice as a DevOps Engineer

DevFeed: [My First 4 months at Bazaarvoice as a DevOps Engineer](<https://devfeed.tech/articles/my-first-4-months-at-bazaarvoice-as-a-devops-engineer-38723.md>)

Original publisher: [Read original article](<https://blog.developer.bazaarvoice.com/2024/03/18/my-first-4-months-at-bazaarvoice-as-a-devops-engineer/>)

Author: Edward Davies

Published: 2024-03-18T13:34:17Z

Content type: opinion

Language: en

Sources: [Bazaarvoice](<https://devfeed.tech/sources/bazaarvoice.md>)

Topics: [DevOps](<https://devfeed.tech/topics/devops.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [jira](<https://devfeed.tech/topics/jira.md>), [Slack](<https://devfeed.tech/topics/slack.md>)

Tags: [bazaarvoice](<https://devfeed.tech/tags/bazaarvoice.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [communication](<https://devfeed.tech/tags/communication.md>), [culture](<https://devfeed.tech/tags/culture.md>), [devops](<https://devfeed.tech/tags/devops.md>), [devops-engineer](<https://devfeed.tech/tags/devops-engineer.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [jira](<https://devfeed.tech/tags/jira.md>), [new-hire-onboarding](<https://devfeed.tech/tags/new-hire-onboarding.md>), [newhire](<https://devfeed.tech/tags/newhire.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [ownership](<https://devfeed.tech/tags/ownership.md>), [slack](<https://devfeed.tech/tags/slack.md>), [soft-skills](<https://devfeed.tech/tags/soft-skills.md>), [team](<https://devfeed.tech/tags/team.md>), [waysofworking](<https://devfeed.tech/tags/waysofworking.md>)

### AI overview

A DevOps engineer reflects on their first four months at Bazaarvoice, focusing on public communication in Slack, searchable team knowledge, and shared ownership of Jira work. The post describes how public questions, documented updates, error messages, and blockers help distributed teams collaborate and continue work across time zones.

### Source excerpt

I joined Bazaarvoice as a DevOps engineer into the Cloud engineering team in September 2023. It has been a very busy first 4 months learning a lot in terms of technical and soft skills. In this post I have highlighted my key learnings from my start at BV. Communication One of the key takeaways I [...]

## Announcing requireKTX

DevFeed: [Announcing requireKTX](<https://devfeed.tech/articles/announcing-requirektx-27052.md>)

Original publisher: [Read original article](<https://zsmb.co/announcing-requirektx/>)

Author: Márton Braun

Published: 2021-06-17T18:00:00Z

Content type: release

Language: en

Sources: [zsmb.co](<https://devfeed.tech/sources/zsmb-co.md>)

Topics: [Library](<https://devfeed.tech/topics/library.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [errors](<https://devfeed.tech/tags/errors.md>), [github](<https://devfeed.tech/tags/github.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [marton-braun](<https://devfeed.tech/tags/marton-braun.md>), [zsmb](<https://devfeed.tech/tags/zsmb.md>), [zsmb-co](<https://devfeed.tech/tags/zsmb-co.md>), [zsmb13](<https://devfeed.tech/tags/zsmb13.md>), [zsmbco](<https://devfeed.tech/tags/zsmbco.md>)

### AI overview

This article announces requireKTX, a library that adds extensions for conveniently requiring values from common Android types and data sources. Instead of returning nullable types or default values, the extensions throw meaningful exceptions with explanatory error messages.

### Source excerpt

Introducing a new library to conveniently require values from common Android types.

## Designing Clear, Actionable Error Messages for Framework and Library Users

DevFeed: [Designing Clear, Actionable Error Messages for Framework and Library Users](<https://devfeed.tech/articles/write-errors-that-don-t-make-me-think-35827.md>)

Original publisher: [Read original article](<https://temporal.io/blog/error-message-design>)

Author: Shawn Wang

Published: 2020-11-19T04:00:00Z

Content type: opinion

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Exception](<https://devfeed.tech/topics/exception.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [debugging](<https://devfeed.tech/topics/debugging.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [framework](<https://devfeed.tech/tags/framework.md>), [go](<https://devfeed.tech/tags/go.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [library](<https://devfeed.tech/tags/library.md>), [messages](<https://devfeed.tech/tags/messages.md>)

### AI overview

The article argues that cryptic and poorly considered error messages worsen debugging and bug reporting. It presents Temporal's error-message style guidance and broader principles for making errors actionable and providing meaningful context for users and maintainers.

### Source excerpt

There is nothing more frustrating than a cryptic error message.

## Note to Future Me -- Testing Intents with Matchers

DevFeed: [Note to Future Me -- Testing Intents with Matchers](<https://devfeed.tech/articles/note-to-future-me-testing-intents-with-matchers-32073.md>)

Original publisher: [Read original article](<https://www.maiatoday.net/p/note-to-future-me-testing-intents-with-matchers/>)

Published: 2018-01-26T14:54:45Z

Content type: tutorial

Language: en

Sources: [maiatoday](<https://devfeed.tech/sources/maiatoday.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [test](<https://devfeed.tech/topics/test.md>), [parcelable](<https://devfeed.tech/topics/parcelable.md>), [Code](<https://devfeed.tech/topics/code.md>), [Library](<https://devfeed.tech/topics/library.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [data-class](<https://devfeed.tech/tags/data-class.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [parcelable](<https://devfeed.tech/tags/parcelable.md>), [testing](<https://devfeed.tech/tags/testing.md>), [testing-matchers](<https://devfeed.tech/tags/testing-matchers.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial demonstrates testing Android activity intents with Espresso and Hamcrest matchers in Kotlin. It passes a parcelable data object between activities, verifies the intent extra and its properties, and shows how custom matchers can improve error messages and test only selected properties.

### Source excerpt

I want to make my little experiments public and save them as a reminder for future me. So here is yet another post on Matchers and Espresso testing. I want to test this: First activity starts another activity at a button click. First activity passes a parcelable object to the second activity. Test that the intent that starts the second activity contains the object with the correct properties. I built a contrived example, MainActivity collects some info and passes this to StarActivity in a parcelable called ContrivedParams. See the sample code on GitHub. To write the tests I brushed up on Hamcrest[1][2][3]: a library that makes it easier to write readable tests. Instead of assert(expected==actual) you can write almost-english assertThat(actual, is(expected)) which is a sugar coated version of assertThat(actual is(equalto(expected))) Sadly though is is a hard keyword in Kotlin so I ended up using the isA() and equalTo() varieties of calls rather than escaping is with backticks. Another reason to use Hamcrest -- better error messages. Compare these two messages. java.lang.AssertionError at net.maiatoday.hellointentmatcher.ContrivedParamsTest.showErroMessagesTest(ContrivedParamsTest.kt:37) with the message given by a custom matcher java.lang.AssertionError: Expected: title should return "Hello World" but: was "Hello World!" at net.maiatoday.hellointentmatcher.ContrivedParamsTest.showErroMessagesTest(ContrivedParamsTest.kt:42) or the error message given by an object matcher java.lang.AssertionError: Expected: <ContrivedParams(title=Hello World, starCount=3, colour=#00b0ff)> but: was <ContrivedParams(title=Hello World!, starCount=4, colour=#00b0fff)> at net.maiatoday.hellointentmatcher.ContrivedParamsTest.showErroMessagesTest(ContrivedParamsTest.kt:47) The parameters for the second activity is passed in a parcelable data class. I used the Espresso-intents library . Start the activity with an IntentsTestRule. The IntentsTestRule initialises the Espresso intents before each

## Teleport 2.0 Release Information

DevFeed: [Teleport 2.0 Release Information](<https://devfeed.tech/articles/teleport-2-0-release-information-29899.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/teleport-2-0-released/>)

Author: taylor@goteleport.com (Taylor Wakefield)

Published: 2017-04-11T00:00:00Z

Content type: release

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Release notes](<https://devfeed.tech/topics/release-notes.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [DynamoDB](<https://devfeed.tech/topics/dynamodb.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Ansible](<https://devfeed.tech/topics/ansible.md>), [OpenID connect (OIDC)](<https://devfeed.tech/topics/oidc.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [cli](<https://devfeed.tech/tags/cli.md>), [dynamodb](<https://devfeed.tech/tags/dynamodb.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [oidc](<https://devfeed.tech/tags/oidc.md>), [openssh](<https://devfeed.tech/tags/openssh.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>)

### AI overview

Teleport 2.0 is officially released with new features including DynamoDB state storage, TOTP support, secret-storage plugins, finalized audit-log documentation, OpenSSH interoperability improvements, Ansible fixes, server-side authentication enforcement, enhanced OIDC claim parsing, and improved CLI error messages. The article also announces the commercial Teleport Enterprise edition.

### Source excerpt

Announcing the official 2.0 version of Teleport

## Stupid mistakes devs make, part I: Taking app messages at face value

DevFeed: [Stupid mistakes devs make, part I: Taking app messages at face value](<https://devfeed.tech/articles/stupid-mistakes-devs-make-part-i-taking-app-messages-at-face-value-29123.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/stupid-mistakes-dev-make-part_i/>)

Author: Wolfram Rittmeyer

Published: 2014-02-28T06:45:11Z

Content type: opinion

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [error-messages](<https://devfeed.tech/tags/error-messages.md>), [logging](<https://devfeed.tech/tags/logging.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

A personal account of debugging an Android sharing feature that reported an image attachment as too large. The actual problem was a crashed ContentProvider whose stack trace was missed because logcat was filtered using an outdated logging tag; the lack of tests for the sharing code also allowed the issue to go unnoticed.

### Source excerpt

This is a new series about programming blunders I make. Stuff that keeps me looking for solutions in all the wrong places while the answer most often is glaringly simple. If only I knew that right away! I am sorry for the generalization in the headline - of course it's only me doing stupid stuff [...] Continue Reading "Stupid mistakes devs make, part I: Taking app messages at face value" The post Stupid mistakes devs make, part I: Taking app messages at face value appeared first on Grokking Android.