(22.05.30)
~./node_modules/mongoose/lib/query.js:4719
const castError = new CastError();
^
CastError: Cast to ObjectId failed for value "null" (type string) at path "_id" for model "User"
at model.Query.exec (~./node_modules/mongoose/lib/query.js:4719:21)
at model.Query.Query.then (~./node_modules/mongoose/lib/query.js:4818:15)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
messageFormat: undefined,
stringValue: '"null"',
kind: 'ObjectId',
value: 'null',
path: '_id',
reason: BSONTypeError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer
at new BSONTypeError (~./node_modules/bson/src/error.ts:16:5)
at new ObjectId (~./node_modules/bson/src/objectid.ts:88:15)
at castObjectId (~./node_modules/mongoose/lib/cast/objectid.js:24:12)
at ObjectId.cast (~./node_modules/mongoose/lib/schema/objectid.js:245:12)
at ObjectId.SchemaType.applySetters (~./node_modules/mongoose/lib/schematype.js:1189:12)
at ObjectId.SchemaType._castForQuery (~./node_modules/mongoose/lib/schematype.js:1623:15)
at ObjectId.SchemaType.castForQuery (~./node_modules/mongoose/lib/schematype.js:1613:15)
at ObjectId.SchemaType.castForQueryWrapper (~./node_modules/mongoose/lib/schematype.js:1590:20)
at cast (~./node_modules/mongoose/lib/cast.js:344:32)
at model.Query.Query.cast (~./node_modules/mongoose/lib/query.js:5141:12),
valueType: 'string'
}
[nodemon] app crashed - waiting for file changes before starting...
갑자기 이런 오류현상이 발생하여서 기록한다.
stringValue를 보면 _id가 없을 때, String타입으로 null이 강제할당 되어버려서 발생하는 현상 같은데 구체적으로 어디서 발생하는 문제인지 아직 모르겠다. 해결법을 찾으면 추후 재포스팅 예정.
(22.06.03)
이 문제가 항상 발생하는게 아니라는 사실을 발견했다. 오히려 매우 특이한 조건하에서만 발생한다.
본인의 컴퓨터에서는 특정 브라우저에서 특정 상황에서만 저 에러가 뜨는 것을 발견하였다.
총 4개의 브라우저(크롬 1, 크롬 2, 크롬 3, 엣지)로 테스트하였고, 개발용으로 쓰는 크롬 브라우저에서만 이 현상이 발생하였다.
따라서 이 이슈는 우선순위에서 잠시 밀어두고 해결책은 천천히 찾기로 결정.
현재로서 가장 의심되는 것은 개발용 브라우저에 설치해둔 개발자툴 중에 하나가 무언가 충돌을 일으키는 것 같다.
왜냐하면, 위 오류에서 본인은 ' "null" '이 매우 눈에 거슬리는 상황이었는데,
모든 페이지에서 /null 로 접속을 시도하는 로그가 발견되었기 때문이다. 그러니 당연히 404에러가 뜰 수 밖에.. 본인은 /null 라우터를 만들어 놓지 않았기 때문.
어쨌거나 null이 계속 눈에 밟힌다는 점에서 ' "null" ' 과 /null 은 관련성이 있다고 보여진다.
대부분의 사용자 환경에서는 문제 없다는 점.
heroku error code H13에 해당되어 "Connection closed without response"가 유발되지만, 자동으로 서버 재시작이 이루어지는 경미한 error 라는 점
결정적으로, null이 crash를 일으키는 페이지가 현재 잘 쓰이지 않는 기능(아마 아무도 안 쓸듯)라는 점에서 일단 차후에 천천히 해결하기로 결정지었다.
.......였는데 성격상 넘어가질 못하고 이리저리 테스트 해 본 결과, 이 현상의 원인을 찾는데 성공함.
아래 링크 참조
'Learning-Log > Computer Science' 카테고리의 다른 글
[JS/함수] 화살표 함수 1분만에 이해하기 : 함수(Function)을 정의하는 4가지 방법 (0) | 2022.06.07 |
---|---|
[크롬 확장 프로그램] CrxMouse 버그 발견 (0) | 2022.06.03 |
Parsing(파싱)과 Parser(파서) (0) | 2022.05.30 |
[Multer] Crash in HeaderParser in dicer (0) | 2022.05.30 |
[Linux/Ubuntu] Ubuntu에 프로그램 설치하기 - 심화편 (0) | 2022.05.30 |