stern defaults to the namespace in your current context and matches pods by regex - no match means no output and no error, which looks like it is broken. Check the namespace first (kubens --current), then whether any pod matches (kubectl get pods -n [ns]). Re-run with the right -n and a looser query, or -l [selector] for label matching.

## The error
```text
(no output, exit 0 - the query matched no pods in the namespace stern searched)
```

## What to do
1. Check the namespace stern used:
```bash
kubens --current 2>/dev/null || kubectl config view --minify -o jsonpath='{.contexts[0].context.namespace}'
```
   Expected: Prints the effective namespace.
2. See if anything matches:
```bash
kubectl get pods -n [namespace]
```
   Expected: Lists the pods actually there.
3. Re-run scoped correctly:
```bash
stern -n [namespace] [looser-query]
```
   Expected: Logs stream.
4. Alternative - match by label:
```bash
stern -n [namespace] -l app=[name]
```
   Expected: Matches pods by label instead of name regex.

## When this applies
- stern exiting silently with no output
- pods living in a different namespace than the context default
- overly specific pod-name regexes

## When it does NOT apply
- forbidden errors (RBAC - different fix)
- stern hanging with no output (network/watch issue, not a match issue)

## Works with
stern 1.x

### stern --tail shows old logs but nothing new
The match is fine but nothing is logging. Check the app, not stern.

## Why it happens
stern resolves its target set once at startup: namespace from context (or -n), pods by name regex (or -l). An empty target set is a valid run that prints nothing.

## Edge cases
- With --no-follow an empty match exits instantly; without it, stern waits for future matches - use --no-follow in scripts.
- Regex special characters in pod names need escaping or the match silently fails.

## Resolved from
gh:shyuan/skills (stern-logs recipes) - https://github.com/shyuan/skills/blob/HEAD/skills/stern-logs/references/recipes.md