> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# 흔한 오류와 디버깅

## 흔한 오류와 디버깅 방법

모든 예제에서 공통으로 발생할 수 있는 오류와 해결 방법을 정리합니다.

| 오류 메시지                                              | 원인                                     | 해결 방법                                            |
| --------------------------------------------------- | -------------------------------------- | ------------------------------------------------ |
| `PERMISSION_DENIED: User does not have USE CATALOG` | SP에 카탈로그 접근 권한 미부여                     | `GRANT USE CATALOG ON CATALOG <name> TO <sp-id>` |
| `TABLE_OR_VIEW_NOT_FOUND`                           | 테이블 이름 오타 또는 SP에 테이블 접근 권한 없음          | 테이블 이름 확인, `GRANT SELECT` 부여                     |
| `ENDPOINT_NOT_FOUND`                                | Serving Endpoint 이름 오타 또는 SP에 접근 권한 없음 | 엔드포인트 이름 확인, `CAN QUERY` 권한 부여                   |
| `Connection refused` / Timeout                      | SQL Warehouse가 중지됨                     | Warehouse 시작 또는 Serverless 사용                    |
| `ModuleNotFoundError: No module named 'xxx'`        | `requirements.txt`에 패키지 누락             | 패키지 추가 후 재배포                                     |
| `OSError: [Errno 98] Address already in use`        | 포트 충돌                                  | `$DATABRICKS_APP_PORT` 사용 확인                     |
| `StreamlitAPIException`                             | Streamlit 버전 호환성 문제                    | `requirements.txt`에서 Streamlit 버전 명시             |

> **참고**
> **디버깅 순서**: 오류가 발생하면 다음 순서로 확인하세요:

1. **Logs 탭** 에서 에러 메시지 확인 (가장 중요)
2. **SP 권한** 확인 — `GRANT` SQL 실행 여부
3. **환경변수** 확인 — `app.yaml`의 `valueFrom`과 `resources`의 `name` 일치 여부
4. **Warehouse/Endpoint 상태** 확인 — `Running` 상태인지
5. **로컬에서 재현**— `databricks apps run-local --debug`로 동일 오류 발생하는지
