Unexpected token < in JSON at position 0. Status code 500 in Nextjs 13 production build (App router)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- nextjs, nodejs, typescript
Hướng nghiên cứu
Bắt đầu với src/app/api/upload/route.ts và lệnh gọi upload_stream, sau đó tái hiện request bằng next dev và bằng next build && next start với các phiên bản package được cung cấp. So sánh response 500 trong production với kết quả trong development; hoàn tất khi cùng một lần upload hình ảnh thành công trong production build mà không có lỗi phân tích JSON.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug in a sentence or two.
Unexpected token < in JSON at position 0. Status code 500 in Nextjs 13 production build (App router)
Issue Type (Can be multiple)
[ ] Build - Can’t install or import the SDK
[ ] Babel - Babel errors or cross browser issues
[ ] Performance - Performance issues
[X] Behaviour - Functions aren’t working as expected (Such as generate URL)
[ ] Documentation - Inconsistency between the docs and behaviour
[ ] Incorrect Types - For typescript users who are having problems with our d.ts files
[ ] Other (Specify)
Steps to reproduce
Create a route src/app/api/upload/route.ts and use the upload_stream method to upload any image
//src/app/api/upload/route.ts
import { NextRequest, NextResponse } from "next/server";
import { UploadApiResponse, v2 as cloudinary } from "cloudinary";
const cloud_name = process.env.NEXT_CLOUDINARY_CLOUDNAME;
const api_key = process.env.NEXT_CLOUDINARY_API_KEY;
const api_secret = process.env.NEXT_CLOUDINARY_API_SECRET;
cloudinary.config({
cloud_name,
api_key,
api_secret,
});
export async function POST(request: NextRequest) {
const data = await request.formData();
const image = data.get("file") as File;
const bytes = await image.arrayBuffer();
const buffer = Buffer.from(bytes);
const response = await new Promise<UploadApiResponse>((resolve, reject) => {
const stream = cloudinary.uploader.upload_stream({}, (err, res) => {
if (err) reject(err);
resolve(res!);
});
stream.write(buffer);
stream.end();
});
return NextResponse.json({
message: "File successfully uploaded",
url: response.secure_url,
id: response.public_id,
});
}
Run next dev command and send a request to http://localhost:3000/api/upload with the image. This works fine
Now, run next build && next start and send same request to the same url and server will throw an HTTP 500 error:
Error screenshots
Browsers (if issue relates to UI, else ignore)
[ ] Chrome
[ ] Firefox
[ ] Safari
[ ] Other (Specify)
[ ] All
Versions and Libraries (fill in the version numbers)
Cloudinary_NPM SDK version 1.41.0
Node - 18.15.0
NPM - 9.6.4
Config Files (Please paste the following files if possible)
// package.json
{
"name": "cloudinary-test",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"cloudinary": "^1.41.0",
"next": "13.5.4",
"react": "^18",
"react-dom": "^18"
},
"devDependencies": {
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"typescript": "^5"
}
}
Repository
- Ngôn ngữ chính
- JavaScript
- Star
- 672
- Fork
- 318
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cloudinary/cloudinary_npm
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
cloudinary/cloudinary_npm#746 · 1 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
cloudinary/cloudinary_npm#739 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 58/100
cloudinary/cloudinary_npm#734 ·
-
How to handle API KeysĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
cloudinary/cloudinary_npm#713 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
cloudinary/cloudinary_npm#712 · 1 bình luận ·
Tất cả issue của cloudinary/cloudinary_npm
Issue tương tự
-
bug confirmed issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
open-webui/open-webui#34458 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
-
area: install-setup needs-info question
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
accessibility area: css area: web ui bug difficulty: easy frontend good first issue help wanted javascript journey: first-visit journey: mobile priority: P3 quality tech: css tech: html typescript ui user-experience
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
themactep/thingino-firmware#2018 ·
Maintainer thường phản hồi trong vòng 1 ngày