Skip to content
investigating-warnings logo

Investigating Warnings

investigating-warnings

Don't dismiss warnings without understanding them - investigate to determine if they indicate bugs, misconfigurations, or are cosmetic, then document findings either way

mattnigh/skills_collection0installs24stars

SKILL.md

Full skill instructions

Investigating Warnings

Overview

Warnings in output (compiler, runtime, CLI tools) shouldn't be automatically dismissed or ignored. Each warning deserves investigation to understand:

  1. Is it a bug? - Indicates actual problem in code/​config
  2. Is it a misconfiguration? - Fixable issue
  3. Is it cosmetic? - Expected behavior, just noisy

All three require documentation explaining the finding.

Core Principle: Every warning has a reason. Understand it, then decide.

When to Use

Use this skill when:

  • Any warning appears in output (build, test, runtime, CLI)
  • Tool outputs cautionary messages
  • Logs contain unexpected entries
  • About to add "ignore this warning" to docs
  • Considering suppressing warning output

The Problem

Bad Pattern

$ ping6 -I demop ff02::1
ping6: Warning: source address might be selected on device other than: demop
# "Probably fine, ignore it"

Problems:

  • Don't know if it's hiding a bug
  • Future maintainers will wonder about it
  • Might indicate deeper issue
  • No way to verify it's harmless

What Actually Happened

Session example:

$ ping6 -I test_mainp ff02::1
ping6: Warning: source address might be selected on device other than: test_mainp

User: "Should we be concerned about the warning?"

Investigation process:

  1. Check interface addresses: ip addr show test_mainp
  2. Discovered TWO link-local addresses on interface:
    • Kernel auto-generated: fe80::... (from MAC)
    • Our assigned: fe80::... (random IID)
  3. Researched ping6 behavior with multiple link-local addresses
  4. Verified packets still flow correctly (eBPF captured them)

Conclusion:

  • Category: Cosmetic - not a bug
  • Reason: Multiple link-local addresses trigger warning
  • Fix: Use % notation rather than -I: ping6 ff02::1%test_mainp
  • Action: Document in README troubleshooting section

Result: User has confidence warning is harmless, future users won't be concerned.

Categories of Warnings

1. Bugs (Must Fix)

Example:

// Warning: variable 'err' is never checked
result, err := doSomething()
return result

Investigation:

  • Check function signature
  • Verify error handling

Fix:

result, err := doSomething()
if err != nil {
    return nil, fmt.Errorf("doing something: %w", err)
}
return result

2. Misconfigurations (Should Fix)

Example:

WARNING: Running tests without -v flag may hide failure details

Investigation:

  • Check test command flags
  • Review CI configuration

Fix:

# Add -v flag to test commands
go test -v ./​...

3. Cosmetic (Document)

Example:

ping6: Warning: source address might be selected on device other than: demop

Investigation:

  • Check interface state
  • Verify functionality still works
  • Research tool behavior

Documentation:

## Troubleshooting

**Warning: "source address might be selected on device other than"**
- Cosmetic warning from ping6
- Occurs when multiple link-local addresses exist on interface
- Packets flow correctly; eBPF programs capture traffic as expected
- No action needed

Investigation Process

Step 1: Reproduce and Capture

Capture exact warning:

# Save full output
command 2>&1 | tee output.log

Note context:

  • When does it appear?
  • Every time or intermittently?
  • Before/​after specific changes?

Step 2: Inspect System State

For network warnings:

ip addr show <interface>
ip link show <interface>
ip route show

For eBPF warnings:

sudo bpftool prog list
sudo bpftool map list
dmesg | tail

For build warnings:

# Check actual definitions
go doc <package>.<Type>
# Verify imports
go list -m all

Step 3: Research

Check documentation:

  • Man pages: man ping6
  • Package docs: go doc
  • Project READMEs
  • Kernel docs

Search issues:

gh issue list --repo <org>/<repo> --search "warning text"

Web search:

  • Include exact warning text in quotes
  • Add context (tool name, version)

Step 4: Verify Impact

Does it affect functionality?

  • Run tests
  • Check output
  • Verify expected behavior

Session example:

# Warning appeared but eBPF still captured packets
[peer] IPv6: fe80::... -> ff02::1 | next=58 len=64 ttl=255
# ✓ Functionality works despite warning

Step 5: Document Findings

In code (for build/​lint warnings):

// Suppress "unused" warning: keepalive ticker prevents connection timeout
_ = keepaliveTicker

In README (for runtime warnings):

### Known Warnings

**ping6 source address warning**
- Expected when interface has multiple link-local addresses
- Does not affect packet delivery
- See: https://man7.org/​linux/​man-pages/​man8/​ping.8.html

In commit message:

Add IPv6 link-local configuration

Note: ping6 may warn about source address selection when interface
has both kernel-generated and manually assigned link-local addresses.
This is cosmetic and doesn't affect functionality.

Examples from Session

ping6 Source Address Warning

Warning:

ping6: Warning: source address might be selected on device other than: test_mainp

Investigation:

$ ip addr show test_mainp
12: test_mainp@test_main: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    link/​ether 96:8b:bf:87:91:04
    inet6 fe80::a4b3:12ff:fe34:5678/​64 scope link    # Our assigned
    inet6 fe80::948b:bfff:fe87:9104/​64 scope link    # Kernel generated

Conclusion: Two link-local addresses → ping6 unsure which to use → warning

Documentation added to README:

Warning: "source address might be selected on device other than"

  • Cosmetic warning from ping6
  • Occurs when multiple link-local addresses exist
  • Packets still flow correctly through the interface

Checklist

When encountering a warning:

  • Capture exact warning text
  • Note when it appears (build, runtime, specific command)
  • Inspect relevant system state
  • Research documentation and issues
  • Verify whether functionality is affected
  • Categorize: bug, misconfiguration, or cosmetic
  • Fix if needed, document if cosmetic
  • Update README/​docs with finding

Red Flags

Dismissing warnings without investigation:

  • "Probably fine"
  • "Just a warning, not an error"
  • "Doesn't seem to break anything"
  • "I'll look into it later"
  • "Other people probably ignore this too"

Common Rationalizations

  • "It's just a warning, not an error" → Warnings can indicate bugs
  • "Tests pass so it's fine" → Tests might not cover affected code path
  • "It's too noisy to investigate" → Noise often hides real issues
  • "I'll document it later" → You'll forget the context
  • "It worked before the warning" → New warning = something changed

Benefits

For you:

  • Catch bugs early
  • Understand tool behavior
  • Build troubleshooting skills

For others:

  • Clear documentation
  • No mystery warnings
  • Confidence in "expected" behavior

For debugging:

  • Known cosmetic warnings documented
  • Real warnings stand out
  • Context for future issues

Summary

When you see a warning:

  1. Capture it → Full text and context
  2. Investigate it → System state, docs, research
  3. Categorize it → Bug, misconfiguration, or cosmetic
  4. Document it → Code comments, README, commit message

Every warning deserves understanding. Ignoring warnings = accepting unknown unknowns.

More skills from mattnigh

spring-framework-patterns logo
mattnigh/skills_collection

spring-framework-patterns

Comprehensive Spring Framework and Spring Boot best practices including dependency injection patterns, bean lifecycle and scopes, REST API development, Spring Data JPA, service layer design, Spring Security, testing strategies, caching, AOP, async processing, error handling, and common anti-patte...

24 0
View

TypeScript厳格モードによる型安全性設計を専門とするスキル。 📖 参照書籍: - 『Effective TypeScript』(Dan Vanderkam): 型設計 📚 リソース参照: - `resources/Level1_basics.md`: レベル1の基礎ガイド - `resources/Level2_intermediate.md`: レベル2の実務ガイド - `resources/Level3_advanced.md`: レベル3の応用ガイド - `resources/Level4_expert.md`: レベル4の専門ガイド - `resources/di...

24 0
View
deploying-cloud-k8s logo
mattnigh/skills_collection

deploying-cloud-k8s

Deploys applications to cloud Kubernetes (AKS/GKE/DOKS) with CI/CD pipelines. Use when deploying to production, setting up GitHub Actions, troubleshooting deployments. Covers build-time vs runtime vars, architecture matching, and battle-tested debugging.

24 0
View
moai-alfred-agent-guide logo
mattnigh/skills_collection

moai-alfred-agent-guide

19-agent team structure, decision trees for agent selection, Haiku vs Sonnet model selection, and agent collaboration principles. Use when deciding which sub-agent to invoke, understanding team responsibilities, or learning multi-agent orchestration.

24 0
View
mermaid-diagram-generator logo
mattnigh/skills_collection

mermaid-diagram-generator

Converts architecture descriptions, module specs, or workflow docs into Mermaid diagrams. Use when visualizing brick module relationships, workflows (DDD, investigation), or system architecture. Supports: flowcharts, sequence diagrams, class diagrams, state machines, entity relationship diagrams,...

24 0
View
pre-flight-check logo
mattnigh/skills_collection

pre-flight-check

INVOKE FIRST before any code work. Validates git workflow (branch, issue, worklog) and checks approach. Use at START of every task and END before completing. Prevents skipped steps.

24 0
View
browser-dev-tools logo
mattnigh/skills_collection

browser-dev-tools

This skill should be used when working with browser-rendered artifacts (i.e. Bun, React/React Native) to proactively validate that development work on localhost is being built appropriately and to support debugging browser-rendered content. Use this skill after making frontend changes to verify t...

24 0
View
lead-dev logo
mattnigh/skills_collection

lead-dev

Lead Développeur - Coordination technique opérationnelle, code review, mentoring et livraison. Pair de web-dev-process au niveau OPÉRATIONS.

24 0
View
worker-monitor logo
mattnigh/skills_collection

worker-monitor

Monitor Docker workers, RQ queue health, and auto-scale workers (max 4). Use when: checking job progress, monitoring queue depth, scaling workers up/down, diagnosing slow processing, or waiting for jobs to complete. Referenced by data-quality skill during reprocessing.

24 0
View
quality-advisor logo
mattnigh/skills_collection

quality-advisor

Proactive quality guidance system that monitors artifact creation and provides real-time feedback on documentation quality

24 0
View
bump-version logo
mattnigh/skills_collection

bump-version

This skill should be used when the user wants to bump the version number in the workspace. It updates versions across all pyproject.toml files (root, tde, and tda packages) and the CHANGELOG.md to keep them synchronized.

24 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View