본문으로 건너뛰기

거래 오류 메시지

거래가 실패했을 때 응답의 ExceptionText나 브라우저 콘솔에 나온 문구로 원인을 찾습니다. 증상에서 시작하는 진단 순서는 증상별 문제 해결, 계약 항목은 거래 계약 명세, 모듈 설정은 transact 모듈을 보세요.

HTTP 상태가 200이어도 응답 본문에 ExceptionText가 있을 수 있습니다. 문구 앞부분의 'ApplicationID|ProjectID|TransactionID|ServiceID' 값을 계약과 대조하는 것이 가장 빠릅니다.

문구는 transact 모듈 소스(TransactionController, TransactClient)와 화면 로더(syn.js) 기준입니다. 서버 SecurityHardening.SanitizeErrorText가 true이면 클라이언트에는 요청을 처리할 수 없습니다. 참조 ID: {GlobalID}만 돌아가고 원본 문구는 서버 로그(Information)에 남습니다. 이 경우 응답에서 아래 문구를 검색할 수 없으므로 참조 ID(GlobalID)로 서버 로그를 찾으세요.

서버: 요청 검증​

문구발생 조건확인할 설정
요청 정보 확인 필요요청 본문을 읽지 못함요청 전문 형식
요청 한도 초과SecurityHardening.RateLimit가 한도를 넘고 Mode가 Enforce. 다른 모드는 로그만 남깁니다SecurityHardening.RateLimit
요청 경로 수 한도 초과(… > …), 입력 데이터맵 수 한도 초과(… > …)요청의 Routes 수나 입력 데이터맵 수가 MaxRoutes, MaxDataMapSetCount를 넘음 (각 기본값 0은 무제한)SecurityHardening
잘못된 요청IsValidationRequest가 true(기본 false)일 때, BypassGlobalIDTransactions에 없는 거래가 System.Routes가 비었거나 GlobalID가 분산 캐시에 시딩되어 있지 않음. 시딩된 GlobalID는 한 번 쓰면 지워집니다IsValidationRequest, BypassGlobalIDTransactions
요청 만료같은 검증 중 요청 시각(RequestTick)이 180초를 넘음클라이언트·서버 시각
중복 요청IsValidationGlobalID가 true이고 같은 GlobalID를 이미 처리함IsValidationGlobalID
잘못된 입력 전문Action, Kind, System, Transaction, PayLoad, Interface 중 하나가 비어 있음요청 전문 형식
입력 데이터 맵 정보 확인 필요입력 데이터맵을 역직렬화하지 못함요청 PayLoad
데이터 포맷 '…' 확인 필요dataFormat이 J·T가 아님 (비어 있으면 J)요청 dataFormat
'…' 환경정보 구분코드 허용 안됨요청 environment가 AvailableEnvironment에 없거나 목록이 비어 있음AvailableEnvironment
입력 전문 '…' 환경정보 구분코드 확인 필요요청 environment가 비어 있음요청 environment
애플리케이션 ID: '…', 프로젝트 ID: … 요청 가능 거래 매핑 정보 확인 필요AllowRequestTransactions에 *나 해당 애플리케이션·프로젝트가 없음AllowRequestTransactions
제한된 거래 요청입니다.테넌트 앱 경로(Referer)에서 온 호출인데 서비스의 CommandType이 AllowTenantTransactionCommands에 없음. 코드 기본값은 빈 목록이고 배포 module.json은 ["D","G"]입니다AllowTenantTransactionCommands

서버: 계약 조회​

문구발생 조건확인할 것
ProgramID '…', BusinessID '…', TransactionID '…' 거래 Transaction 입력 전문 확인 필요서버에 해당 거래 계약이 없음파일 위치와 이름, ApplicationID·ProjectID·TransactionID, 배포·refresh
FunctionID '…' 거래 매핑 정보 확인 필요계약에 ServiceID가 없음오타·대소문자
FunctionID '…' 거래 매핑 중복 정보 확인 필요같은 ServiceID가 둘 이상계약의 ServiceID 중복
ScreenID '…' 요청 가능화면 거래 매핑 정보 확인 필요호출 화면이 서비스의 AccessScreenID(생략 시 자기 TransactionID)에 없음다른 화면·팝업·공용 거래가 호출하면 AccessScreenID에 화면 ID 추가
거래 라우팅 경로 확인 필요서비스의 RoutingCommandUri가 http를 포함하지 않음RoutingCommandUri, 라우팅 설정
ReturnType 확인 필요지원하지 않는 ReturnType서비스의 ReturnType
PSH 동시 처리 한도 초과SecurityHardening.MaxConcurrentPushTasks 초과 (PSH 거래)MaxConcurrentPushTasks

서버: 인증과 권한​

판정 방식은 거래 계약 명세의 접근 제어를 보세요.

문구발생 조건확인할 것
인증 자격 증명 확인 필요IsPermissionRoles가 true인데 공개 경로나 사용자 역할 정규식이 요청 경로 /{App}/{Project}/{Transaction}와 맞지 않음PermissionRoles 정규식, 로그인 사용자 역할
앱 사용자 역할 또는 정책 권한 확인 필요쿠키 사용자의 Roles·Policys·TransactionTokens 검사가 모두 실패계약의 Roles, Policys, 사용자 역할
BearerToken 역할 또는 정책 권한 확인 필요BearerToken 사용자의 같은 검사가 모두 실패위와 같고 토큰의 Policy.Claims
'…' 애플리케이션, '…' 프로젝트 또는 … 역할 권한 확인 필요UseApiAuthorize가 true인 서비스에서 역할 검사 실패UseApiAuthorize, 역할
TransactionToken 확인 필요AuthorizeMethod가 TransactionTokenOnly인데 토큰이 맞지 않음TransactionTokens
…: BearerToken 정보 확인 필요., BearerToken 기본 무결성 확인 필요, BearerToken 사용자 무결성 확인 필요, BearerToken 정보 무결성 확인 필요, …: BearerToken 정보가 훼손되거나 확인 할 수 없습니다.토큰 형식·서명·사용자 ID 검증 실패토큰 발급·전달 경로, 다시 로그인
SystemID: … 확인 필요요청 시스템 ID가 ModuleConfiguration.SystemID와 다름SystemID
거래 액세스 토큰 IP 유효성 오류, 거래 액세스 토큰 유효성 오류, 거래 액세스 토큰 유효기간 만료거래 액세스 토큰의 IP·해시·만료 검증 실패토큰 발급 시점의 클라이언트 IP, 유효기간
개발 테스트 계정 자동 로그인 클레임이 비정상 요청에 포함되어 있습니다.IsEnabledDevAutoSignIn이 꺼졌거나 RunningEnvironment가 D가 아닌데 개발 자동 로그인 claim이 있음개발 자동 로그인 설정, 위조 의심
인증 또는 권한 확인 오류 - …인증 처리 중 예외서버 로그

서버: 입력·출력 계약​

문구발생 조건확인할 것
'…' 거래 입력 항목이 계약과 동일한지 확인 필요명시 Inputs 개수가 요청 입력 묶음 수와 다르거나 Type: "Row"인데 건수가 1이 아님화면 inputs와 계약 Inputs
… 거래 정보에 필요한 입력 항목이 필요ParameterHandling: "Rejected"인 입력에 데이터가 0건입력 컨트롤·ParameterHandling
… 거래 정보에 필요한 기본값 입력 항목 확인 필요DefaultValue 처리인데 DefaultValues가 없음입력 계약
… 입력 모델 ID가 계약에 있는지 확인, … 항목 ID가 계약에 있는지 확인, '…' 입력 모델 또는 '…' 항목 확인 필요ModelID가 Dynamic·Unknown이 아닌데 Models에 모델·필드가 없음계약의 Models
… Bearer 필드 확인 필요입력 계약이 요구하는 Bearer 필드가 토큰에 없음토큰 claim
… 거래 정보에 출력 모델 개수 및 … 확인 필요, 계약 건수 - …명시 Outputs 개수와 실행 결과 집합 수가 다름. DisposeResult와 Addition 출력은 계산에서 조정됩니다계약 Outputs, SQL·함수 결과 집합 수
… 출력 모델 ID가 계약에 있는지 확인출력 ModelID가 Models에 없음계약의 Models
… 출력 모델에 '…' 항목 확인 필요결과 컬럼이 출력 계약의 Fields나 모델 컬럼에 없음결과 컬럼명 대소문자
… 거래 정보에 출력 데이터 검증 규칙 및 … 확인 필요, 검증 정보 - …출력 ValidateRules 조건이 거짓[FormData0]·[GridData0] 참조와 조건
'…|…' 거래 응답 없음, … 순차 처리 되는 거래 응답은 Json만 지원순차 거래(S) 단계의 결과 없음, Json이 아님SequentialOption, 단계 ReturnType
BaseFieldMappings … 매핑 정보 필요앞선 statement의 결과 행이나 컬럼이 없음BaseFieldMappings
StepID '…' Workflow 실행 오류, Workflow 검증 오류 등워크플로 단계 실행·검증 실패워크플로 계약

서버: 라우팅과 실행 모듈​

문구발생 조건확인할 것
거래 라우팅 요청 오류: …, 거래 라우팅 응답 오류: …실행 모듈로 전달하거나 응답을 읽는 중 예외실행 모듈 기동, RoutingCommandUri, 서버 로그
TransactionRoute 응답 확인 필요 …, TransactionRoute 연결 확인 필요, TransactionRoute 예외 확인 필요 …라우팅 호출의 HTTP 응답 오류·연결 실패·예외대상 모듈 주소·포트
DummyFile: … 확인 필요CommandType: "R" 더미 응답 파일이 없음../tmp/{App}/dummyfile/…/{ServiceID}.dat
CommandType 확인 필요, transactionInfo 확인 필요지원하지 않는 CommandType이거나 서비스 정보 없음서비스의 CommandType
QueryID - … 매핑 정보 필요, DataSourceID … 데이터 원본 정보 필요dbclient에 해당 (id, seq)가 없거나 <datasource>가 서버 DataSource에 없음SQL 계약의 statement, 서버 데이터 원본
EntryType, EntryMethod 확인 필요함수 진입 클래스·메서드를 찾지 못함function 진입점 규칙

클라이언트: 화면 로더 경고​

syn.js의 syn.$l.eventLog가 브라우저 콘솔에 남깁니다. 서버로 가기 전에 멈추거나 응답을 화면에 반영하지 못할 때 나옵니다.

문구수준원인
functionID "…"에 대한 거래 설정을 찾을 수 없습니다.Warning화면 transaction에 해당 키가 없음. 키 오타, 객체 이름이 파일명과 다름
"…" Row List Input Mapping 확인 필요, "…" Row Control Input Mapping 확인 필요, "…" Row Input Mapping 확인 필요, "…" List Input Mapping 확인 필요Warning입력 dataFieldID의 대상 컨트롤(syn-datafield, belongID)이 없거나 중복. 그리드 열 belongID 확인
afterTransaction('validators continue false', …)(훅 호출)그리드 열 validators(require, unique) 실패. callback이 아니라 afterTransaction의 error로 전달됩니다
"…" Form Output Mapping 확인 필요, "…" Grid Output Mapping 확인 필요, "…" Chart Output Mapping 확인 필요Error출력 dataFieldID의 대상 컨트롤이나 syn_data가 없음
"…" 기능의 거래 응답 정의와 데이터 갯수가 다릅니다Error서버가 돌려준 결과 집합 수가 화면 outputs 수와 다름. Exception 집합과 DisposeResult 포함 여부 확인
"…" 거래 중복 또는 존재여부 확인 필요Error같은 functionID가 중복되었거나 거래 정보를 만들지 못함

응답을 화면에 반영하는 단계의 오류는 result.errorText에 담겨 callback으로 전달됩니다. 입력 매핑 경고는 콘솔에만 남으므로 Network 탭에서 요청이 실제로 나갔는지 함께 확인하세요. 화면 객체 구조와 매핑 규칙은 거래 호출을 보세요.