404 에러 문의!

  • 뒤끝 SDK 버전 : 5.6.0
  • 프로젝트명 : 이세계 용사 이야기 : 방치형 키우기
  • 스테이터스 코드 : 404
  • 에러 코드 : NotFoundException\nmessage
  • 에러 메시지 : gameInfo not found, gameInfo을(를) 찾을 수 없습니다\n : gameInfo not found, gameInfo을(를) 찾을 수 없습니다

Update 시에 에러로 확인이 됩니다. 현재 insert는 동기식으로 받어 오고 뒤에는 insert에서 받아온 inDate를 통해서 업데이트를 시도하고 있는데요(where절은 사용하고 있지 않고, 전부 V2 버전으로 변경하였습니다)

혹시 데이터베이스 업데이트 404에러 - vanillasea81님의 글 #3 이 문의처럼 성공 시와 실패 시에 어떤 값이 들어가 있는 지 확인 할 수 있을까요… 에디터에서는 발생하지 않아 문의 남깁니다

안녕하세요 개발자님

해당 에러는 indate와 ownerIndate에 알맞는 데이터가 존재하지 않아 발생하는 에러입니다.

ownerIndate는 문제가 없으나, inDate를 잘못 불러와 에러가 발생하는 듯 하며,
insert된 데이터의 inDate를 얻는 부분이 아닌 GameData.Get을 통해 데이터를 불러왔을때 잘못불러오는 것으로 추측되오니 해당 부분을 확인해주시기 바랍니다.

        Backend.GameData.Insert("items", self.GetParam(), callback => {
            if (callback.IsSuccess() == false) {
                Callback(callback, $"{self} Insert error");
                action(null);
            }
            action(callback.GetInDate());
        });

insert 일부 발췌입니다. 해당 방법으로 얻어오지 않습니다…

재문의 드립니다 ( _ _ )

해당 로직은 이상이 없는 것으로 확인이 되는데요.

혹시 데이터의 indate를 얻는 방식이 Insert만 존재하는 것일까요?
만약 GameData.Get, GetMyData을 통해서도 indate를 얻는다면 해당 부분에서 정상적으로 읽어오지 않았을 것으로 추정이 됩니다.

초기에 유저가 접속 했을 때 GameData.GetMyData를 사용하는데 어떤 방식으로 변경해야 안전한가요 ?

혹시 GetMyData의 호출 및 콜백 코드 공유가 가능하실까요?

var reader = db.GetMyData(from, where_gamer_id, select_star, limit: 100, firstKey);
            if (reader.IsSuccess() == false) {
                Log.Error(reader);
                return self;
            }
            if (reader.GetReturnValuetoJSON()["rows"].Count <= 0) {
                return self;
            }

            var rows = reader.Rows();
            for (int i = 0; i < rows.Count; ++i) {
                var row = rows[i];
                self.Add(new SkillEntity {
                    Id = row.GetInt32("id"),
                    Duration = row.GetInt32("duration"),
                    InDate = row.GetInDate(),
                });
            }

 public static string GetString(this JsonData data, string key)
        {
            if (data.ContainsKey(key)) {
                if (data[key].ContainsKey("S")) {
                    return data[key]["S"].ToString();
                }
            }

            return string.Empty;
        }

public static string GetInDate(this JsonData data) => data.GetString("inDate");

해당 부분 관련해서 DM으로 연락드리겠습니다.