1. 문제 요약
iOS (iPhone 13, iOS 17.x) 환경에서 X(구 Twitter) 앱을 통해 저장한 이미지를 iPhone 사진 앱에서 직접 GPT로 업로드할 경우, 해당 이미지의 MIME-type이 제대로 인식되지 않아 Action API 요청 시 null
로 처리되어 400 오류가 발생하는 문제가 발견되었습니다. 이미지 포맷은 JPEG임에도 불구하고 OpenAI의 file service가 MIME을 올바르게 추론하지 못합니다.
2. 발생 조건
- 사용 기기: iPhone 13 (iOS 17.x)
- 업로드 방식: 사진 앱에서 직접 GPT로 업로드
- 이미지 생성 경로: X 앱 다운로드 버튼을 통해 저장
- 파일 포맷: JPEG (EXIF 정보 및 압축 방식 기준)
- 확장자 표기:
.jpeg
또는.JPEG
(사진 앱) →.jpg
(Ubuntu에서는 Nextcloud 연동 시 확인됨) - 사진 앱 동작: X 앱에서 저장한 이미지를 자동으로 앨범으로 분류함
3. 실험 결과 요약
실험 조건 | 출처 | 확장자 | MIME 추론값 | 결과 |
---|---|---|---|---|
사진 앱에서 X 이미지 업로드 | X 앱 다운로드 | .jpeg |
null |
❌ 실패 |
파일 앱/Nextcloud로 복사 후 업로드 | X 이미지 복사본 | .jpg |
image/jpeg |
✅ 성공 |
동일 이미지 Ubuntu 업로드 | Nextcloud 싱크된 폴더 | .jpg |
image/jpeg |
✅ 성공 |
4. 분석 및 추정 원인
4.1 X 앱의 메타데이터 간섭 가능성
com.apple.metadata:kMDItemWhereFroms
와 같은 iOS 전용 메타 태그가 MIME-type 추론을 방해할 수 있음
4.2 확장자와 내부 포맷의 불일치
- iOS에서는
.jpeg
로 표기되지만 Ubuntu 등에서는.jpg
로 처리되며, 플랫폼 간 추론 방식에 차이가 발생
4.3 GPT가 명시한 MIME-type 무시됨
- GPT가
image/jpeg
으로 명시했더라도, OpenAI의 file-service가 이를 무시하고 자체적으로null
로 처리
5. 제안 및 대응 방향
5.1 사용자 측 대응
- X 앱에서 저장한 이미지는 사진 앱에서 직접 업로드하지 말 것
- 파일 앱이나 PC/Mac을 통해 이미지 파일을 옮겨 업로드하는 방식 추천
5.2 OpenAI 및 Action SDK 개선 요청
.jpeg
확장자에 대한 MIME-type 추론 개선- GPT가 명시한 MIME-type을 무시하지 않도록 SDK 개선
- 메타데이터에 의존하지 않고 Content-Sniffing 기반의 Fallback 처리 검토
6. 참고 자료 제공 가능 항목
요청 시 아래 자료 제공 가능:
- iOS 사진앱과 Ubuntu 환경에서의 메타데이터 비교 스크린샷
- Ubuntu에서 추출한 미디어 속성 정보
- GPT가 명시한 mime_type
이 무시된 실제 요청 로그
Add a New Comment