エラー¶
この API が返す誤りには符号が付く。文面は変わりうる(分かりやすく直る、訳が 変わる)が、符号は変わらない。文面ではなく符号で判定すること。
{
"code": "ARKHE-1011",
"message": "A request holds at most 1000 rows.",
"detail": {"limit": 1000}
}
detail には文面を埋めた値が構造化されたまま入る。数字を文から切り出させない
ためである。
解決の口は text/plain で答える(人も読む)。符号を行頭に置く。
2 か所だけ意図して形が違う。/oauth/token は
RFC 6749 §5.2 に従う——error と
error_description で読むと決まっており、OAuth のクライアントライブラリもそう
読む——ので、符号はその形を崩さずに併記する。管理画面は自前の catalogue から、
画面の言語で答える(?lang= → cookie → Accept-Language)。あちらはブラウザの
画面で、この API ではない。
| 符号 | 状態 | 意味 | 応答本文(英語) |
|---|---|---|---|
ARKHE-1001 |
400 | ARK として読めない。ラベル・NAAN・名前のいずれかが仕様に合わない | Not readable as an ARK: |
ARKHE-1002 |
400 | 修飾子は /(包含)か .(変種)で始める。ほかの文字では始められない |
A qualifier must begin with '/' (a part) or '.' (a variant). |
ARKHE-1003 |
400 | 修飾子が base を指していない。base の内側にある部分参照でなければならない | The qualifier does not point inside the base name: |
ARKHE-1004 |
400 | 名前が長すぎる。仕様が受け取る側に義務づける 255 オクテットまでを索引できる | The name is {length} octets; at most {limit} are indexed (Base Name plus Qualifier, draft-kunze-ark-42 §3.1). |
ARKHE-1005 |
400 | 既に登録済み。黙って上書きしない——書き換えるなら update を使う | {ark} is already registered. |
ARKHE-1006 |
400 | ブラウザに解釈させると危ないスキームは行き先にできない。urn: doi: などは通る(空も正当) |
A target must not use a scheme a browser would execute ({schemes}). |
ARKHE-1007 |
400 | NAAN 単位以上の主体は shoulder を明示する。既定を持たせないのは誤爆を防ぐため | A principal with authority={authority} must name a shoulder. |
ARKHE-1008 |
400 | その shoulder は存在しない | No such shoulder: |
ARKHE-1009 |
400 | 同じ shoulder が複数の NAAN にある。どれか 1 つを勝手に選ばない | Shoulder {shoulder} exists under more than one NAAN; name the naan as well. |
ARKHE-1010 |
400 | 組織に default_shoulder が設定されていない | The organisation has no default shoulder. |
ARKHE-1011 |
400 | 1 リクエストの件数上限(ARKHE_BULK_LIMIT)を超えた |
A request holds at most {limit} rows. |
ARKHE-1012 |
400 | 取り込もうとした名前の検査桁が合わない。外で採番された名前を信じる唯一の手段なので、ここは緩めない | Check digit mismatch: {ark} was not minted by a NOID minter, or was mistyped. |
ARKHE-1013 |
400 | 取り込む名前が、その NAAN のどの shoulder にも属していない | The name {name} does not fall inside a shoulder of NAAN {naan}. |
ARKHE-1014 |
400 | 公開前に取り下げられた名前。二度と採らない——予約した文字列は既に人の手に渡っているので、別の対象に付け直せば外からは NR 違反と見分けがつかない | {ark} was withdrawn before publication; that name is never assigned again. |
ARKHE-1015 |
400 | 公開した ARK の破棄には理由が要る。残らない破棄は、無かったことと同じ——消えた識別子について後から言えることが、これしか残らない | Purging a published ARK requires a reason; it is kept with the name. |
ARKHE-1016 |
400 | 破棄する ARK を confirm に打ち直す。一覧を回すスクリプトが、意図せず全件消すことのないように |
Send confirm with the ARK itself ({ark}) to purge it. |
ARKHE-1017 |
400 | 一度でも外に出した名前を引っ込める・消すには理由が要る。その間に誰かが引用しているかもしれず、こちらからは知りようがない——後から言えることがこれしか残らない | This ARK has been published; unpublishing or deleting it requires a reason. |
ARKHE-1018 |
400 | 一度でも外に出した名前なので、対象を confirm に打ち直す——一覧を回すスクリプトが、意図せず全件を引っ込めることのないように |
Send confirm with the ARK itself ({ark}): it has been published. |
ARKHE-1201 |
401 | 資格情報が無い。公開情報の読取には要らないので、これは書き込みの口 | No credentials. |
ARKHE-1202 |
401 | 資格情報が受け付けられない。有効な機構は ARKHE_AUTH で決まる |
Invalid credentials. |
ARKHE-1203 |
404 | この構成は自前でトークンを発行しない。口の無い構成で広告しないため 404 | This deployment does not issue tokens itself (see ARKHE_AUTH). |
ARKHE-1204 |
400 | 対応していない grant_type。実装しないものは明示して返す | Only client_credentials is supported. |
ARKHE-1301 |
403 | トークンに要求された scope が無い。scope は narrow できても広げられない | The token does not carry the required scope: |
ARKHE-1302 |
403 | 到達範囲の外。範囲は資格情報の登録属性で決まり、リクエストでは広がらない | Outside this principal's registered reach: |
ARKHE-1303 |
403 | 主体に有効な組織が紐づいていない | The principal has no active organisation. |
ARKHE-1304 |
403 | その shoulder は今の状態では採番できない(retired / reserved など) |
Shoulder {shoulder} has status={status} and cannot be minted into. |
ARKHE-1305 |
403 | そのクライアントに許可されていない scope を要求した。本文は RFC 6749 §5.2 の形(error / error_description)で、符号は併記 |
Scopes not allowed for this client: |
ARKHE-1306 |
307 | その shoulder の採番は外に委譲されている。代理では呼ばない——応答が失われると「向こうにはあるがこちらは知らない ARK」が生まれる | Minting for shoulder {shoulder} is delegated; go to the minter in Location. |
ARKHE-1307 |
403 | 委譲していない shoulder には取り込めない。自分で採番している名前空間に外から名前を入れると、採番と衝突しうる——委譲したからこそ、外で採られた名前がある | Shoulder {shoulder} has status={status}; only a delegated shoulder can be imported into. |
ARKHE-1308 |
403 | 取り次いでいるだけの NAAN には取り込めない。他所の名前空間の保管者を名乗ることになる | This resolver is not authoritative for NAAN {naan}; it cannot take custody of names in it. |
ARKHE-1309 |
403 | その shoulder の採番は外で行われており、ここから叩ける口は無い(閉域など)。人向けの案内だけを返す——Location に人向けのページを載せると、クライアントはそこへ POST しにいく |
Minting for shoulder {shoulder} happens elsewhere and is not reachable from here. See {about} |
ARKHE-1401 |
404 | 台帳にその ARK が無い(一括操作では 1 件でも欠ければ全体が失敗する) | No such ARK in this ledger. |
ARKHE-1402 |
404 | その NAAN はこのリゾルバが権威を持つ。だから「無い」と言い切れる | This resolver is authoritative for the NAAN and has no such name. |
ARKHE-1403 |
404 | 検査桁が合わない。打ち間違い・転記ミスの疑い(NOID の NCDA が単一文字誤りと隣接転置を検出する) | Check digit mismatch: the identifier looks mistranscribed. |
ARKHE-1404 |
404 | 知らない NAAN について述べられることは無い。inflection 無しなら上位リゾルバへ取り次ぐ | Metadata for an unknown NAAN is not held by this resolver. |
ARKHE-1501 |
409 | 公開中の ARK は、そのままでは削除できない。 先に公開を取り下げる(/api/unpublish)か、/api/purge で一手に行う。どちらも理由と打ち直しを要求する。消さずに済ませるなら tombstone に付け替えるか url を空にする(NR を宣言している以上、解決が止まることは許されない) |
{ark} is published; unpublish it first (or purge it in one step). |
ARKHE-1502 |
409 | 修飾子付きの名前がぶら下がっている。先に下から取り下げる——親だけ消すと、行き先を継ぐ先の無い部分参照が残る | {ark} has {count} qualified name(s) under it; withdraw those first. |
ARKHE-1503 |
409 | その ARK は公開していないので、公開を取り下げることはできない(消すなら取り下げではなく削除) | {ark} is not published; there is nothing to withdraw from publication. |
ARKHE-1504 |
409 | 一度でも外に出した名前は一括では消せない。 理由と打ち直しを求める重い経路(/api/delete)を通す——軽い経路で大量に捨てられるのは、誰も見ていない名前だけ |
{ark} has been published; a name that has been out is deleted on its own, not in a batch. |
ARKHE-1601 |
429 | 1 日の採番上限に達した(組織ごとの quota_per_day) |
Daily quota exhausted: {used} of {quota} used in the last 24 hours. |