Systems | Development | Analytics | API | Testing

Errors in Python: Types, Causes, and Examples

Errors in Python are issues in a program that cause incorrect results or prevent proper execution. Some Python errors are loud and obvious, and your code barely gets started before it throws an error that tells you exactly what went wrong. Other errors are more subtle, allowing your Python program to run without complaints while silently producing incorrect results that only become apparent later.

Cross-cluster associations in Rails

One of the beauties of the Rails framework is the ability to utilize Ruby on Rails associations in your models. These associations allow you to access collections of records in your code with pleasant syntax, abstracting away the need to write underlying SQL queries. That abstraction holds as long as all your data lives in one place. The moment your tables are spread across separate database clusters, certain association types stop working.

Building a Django Chat App with WebSockets

Django is well known for being used to develop servers for HTTP connections and requests for applications. Unfortunately, when building Django chat app or any chat app that requires the connection to remain open for a two-way connection, using an HTTP connection is inefficient. WebSockets provide a means of opening a two-way connection between the client and the server so that all users connected to the open network can get related data in real time.

Heroku logs and you: a complete guide

Heroku's logging system is your primary window into application behavior, but its ephemeral nature and streaming architecture can feel mysterious at first. This guide walks through everything developers need to know about Heroku logs, from understanding what they are and how to access them, to working around their limitations and forwarding them to external services like Honeybadger Insights for complete observability. Read on to master Heroku logging.

FastAPI error handling: types, methods, and best practices

Errors and exceptions are inevitable in any software, and FastAPI applications are no exception. Errors can disrupt the normal flow of execution, expose sensitive information, and lead to a poor user experience. Hence, it is important to implement robust error-handling mechanisms in FastAPI applications. In this article, we will discuss the different types of FastAPI errors to help you understand their causes and effects.

Code coverage vs. test coverage in Python

If you have been writing tests for a while, you have probably encountered code coverage and test coverage. These concepts can be difficult to differentiate because they are somewhat intertwined. In this article, you will learn what code coverage vs test coverage means, and the basis of these concepts. You will also learn the key differences between code coverage and test coverage in Python. You would discover tools, techniques, and best practices to improve your testing strategy.

How to build a Copilot agent

A customer recently shared their debugging workflow with me. When an error shows up in Honeybadger, they import it to Linear, manually add context about where to look in the codebase, then assign GitHub Copilot to investigate. It works, but they asked a good question: could Copilot just access Honeybadger directly? The answer is yes—and it's easier than I expected.

Everything you need to know about Ruby 4.0

Ruby 4.0 is a major release, launched on Ruby’s 30th anniversary (December 25, 2025) to celebrate three decades of the community, not due to major breaking changes. I was surprised to learn that Ruby doesn’t actually follow semantic versioning! Instead, Matz (Ruby’s creator) increases the major version when changes impress him. This version marks 30 years of Ruby and introduces features to extend the language.

Exploring Rails Action Cable with Solid Cable

Real-time features are becoming increasingly important in web applications, but not every Rails developer is familiar with Action Cable, the framework's built-in WebSocket library. Rails Action Cable has long supported web sockets, but comes with some additional complexity. Rails 8 introduces Solid Cable, a new database-backed adapter for Action Cable that eliminates the need for Redis. In this guide, I'll walk you through Action Cable by way of Solid Cable and show you how to build a real-time feature.

Honeybadger year in review: What we shipped in 2025

Happy holidays! 2025 has been a busy and productive time here at 'Badger HQ. While we shipped a lot of cool things, four features really stand out as we look back on the year. Our top features in 2025 include: We also attended some conferences this year! MicroConf, RailsConf, Laracon, ElixirConf, Rocky Mountain Ruby, and SF Ruby: It was great connecting with so many folks in person, discussing application monitoring, and sharing some delicious meals.