ऑराबेस लोगो
aurabaseडॉक्स
डॉक्स›Edge Functions›Errors, timeouts and retries

त्रुटियाँ, समयबाह्य और पुनः प्रयास

यह कैसे पढ़ें कि कुछ गलत होने पर invoke क्या लौटाता है, और जब आप सुरक्षित रूप से दोबारा कॉल कर सकते हैं।

9 मि॰ पढ़ें·स्तर मध्यवर्ती·12 अक्टू॰ 2026 पर संशोधित
यह अंग्रेजी पाठ फ़्रेंच मूल से स्वचालित रूप से उत्पन्न हुआ था और अभी तक इसकी समीक्षा नहीं की गई है।
यह पृष्ठ स्वचालित रूप से अनुवादित किया गया था. अंग्रेजी संस्करण प्रामाणिक है.
#
शरीर रचना

1. त्रुटि वस्तु

invoke { data, error } लौटाता है और कभी फेंकता नहीं है। error एक AuraError है, इसलिए isAuraError(error) सत्य है। दो उपवर्ग आपको बताते हैं कौन असफल हुआ:

classify.tstypescript
import { FunctionsHttpError, FunctionsRelayError } from '@aurabase/aurabase-js'

const { data, error } = await aura.functions.invoke('checkout', { body })

if (error instanceof FunctionsHttpError) {
  // आपके फ़ंक्शन ने त्रुटि स्थिति के साथ उत्तर दिया। अपना कोड डीबग करें.
} else if (error instanceof FunctionsRelayError) {
  // प्लेटफ़ॉर्म विफल हो गया: आपके फ़ंक्शन का उत्तर कभी वापस नहीं आया।
} else if (error) {
  // क्लाइंट पर कॉल रद्द कर दी गई या अस्वीकार कर दी गई (टाइमआउट, अमान्य_बॉडी, नो_सेशन)।
}
मैदानअर्थ
error.statusHTTP स्थिति. 0 का अर्थ है कि क्लाइंट पर विफलता हुई (कोई प्रतिक्रिया नहीं)।
error.codeस्थिर पहचानकर्ता, उदाहरण के लिए NOT_FOUND, QUOTA_EXCEEDED, timeout, invalid_body।
error.messageआपके फ़ंक्शन द्वारा लौटाया गया पाठ, या प्लेटफ़ॉर्म का स्पष्टीकरण।
error.contextFunctionsHttpError पर: वह बॉडी जो आपका फ़ंक्शन लौटाता है (पार्स किया गया JSON या टेक्स्ट)।
error.detailsअपरिष्कृत त्रुटि निकाय. प्लेटफ़ॉर्म त्रुटि के लिए इसमें error.request_id शामिल है।
#
निदान

2. यह कौन सी त्रुटि है?

चल रहे स्टैक के विरुद्ध व्यवहार का अवलोकन किया गया। कोटा पंक्ति बैकएंड की त्रुटि मैपिंग का अनुसरण करती है और हमारे परीक्षणों में ट्रिगर नहीं हुई थी।

क्या हुआकक्षाstatuscodemessage
फ़ंक्शन मौजूद नहीं हैFunctionsHttpError404NOT_FOUND"...फ़ंक्शन 'नहीं' अप्राप्य"
आपका फ़ंक्शन टेक्स्ट के साथ 500 लौटाता हैFunctionsHttpError500http_500वह पाठ
आपका फ़ंक्शन स्वयं 503 लौटाता हैFunctionsHttpError503http_503तुमने क्या लौटाया
आपका फ़ंक्शन फेंकता हैFunctionsHttpError500http_500"आंतरिक सर्वर त्रुटि"
आपका फ़ंक्शन अपने timeout_secs से अधिक हैFunctionsHttpError500 या 503http_500 / http_503"फ़ंक्शन निष्पादन विफल" या "फ़ंक्शन ने HTTP 503 लौटाया"
रनटाइम पहुंच योग्य नहीं हैFunctionsRelayError503SERVICE_UNAVAILABLEबताते हैं कि फ़ंक्शन था न कि रन
किसी भी प्रतिक्रिया से पहले ही नेटवर्क फेल हो जाता हैFunctionsRelayError0network_errorनेटवर्क त्रुटि
योजना कोटा समाप्त हो गयाFunctionsHttpError403QUOTA_EXCEEDEDकोटा संदेश
एक ग्राहक से बहुत अधिक कॉलेंFunctionsHttpError429rate_limit_exceededसंदेश प्रतीक्षा करें
अनुरोध का मुख्य भाग बहुत बड़ा हैFunctionsRelayError503SERVICE_UNAVAILABLE"अधिकतम पेलोड आकार पार हो गया"
आपने रद्द कर दिया, या आपका timeout समाप्त हो गयाAuraError0timeout"फ़ंक्शन मंगलाचरण निरस्त या समयबाह्य"
मुख्य भाग को JSON के रूप में नहीं भेजा जा सकताAuraError0invalid_bodyबचने के प्रकार का नाम बताएं
आपके फ़ंक्शन का 503 प्लेटफ़ॉर्म विफलता नहीं है

यदि आपका अपना कोड 502, 503 या 504 लौटाता है, तो आपको FunctionsHttpError मिलता है: क्लास आपको बताती है कि किसने उत्तर दिया, न कि स्थिति संख्या क्या है।

दो असफलताएँ कुछ और ही लगती हैं

लगभग 256 KiB से ऊपर के अनुरोध निकाय को 503 SERVICE_UNAVAILABLE के साथ अस्वीकार कर दिया जाता है, और लगभग 300 KB या उससे अधिक की प्रतिक्रिया हमारे 50-सेकंड के परीक्षण के भीतर वापस नहीं आई। सीमाएं देखें। पुनः प्रयास करने से मदद नहीं मिलती; कम डेटा भेजें, या स्टोरेज का उपयोग करें।

#
पुन: प्रयास करें

3. तय करें कि पुनः प्रयास करना है या नहीं

SDK कभी भी आपके लिए किसी मंगलाचरण का पुनः प्रयास नहीं करता है: आपके फ़ंक्शन के दुष्प्रभाव हो सकते हैं, और बार-बार POST डिफ़ॉल्ट रूप से सुरक्षित नहीं है। आप नीचे दी गई तालिका का उपयोग करके निर्णय लें।

असफलताक्या फ़ंक्शन चला?पुनः प्रयास करना सुरक्षित है?
मंच से 503 (FunctionsRelayError)नहीं, रनटाइम पहुंच योग्य नहीं थाहाँ, एक छोटे से बैक-ऑफ़ के साथ
429नहींहाँ, error.retryAfter में देरी के बाद
403 QUOTA_EXCEEDEDनहींनहीं, जब तक कोटा रीसेट नहीं हो जाता या आप योजना नहीं बदल देते
status 0 (network_error)अज्ञातकेवल तभी जब आपका कार्य निष्क्रिय हो
क्लाइंट पर timeoutअज्ञातकेवल तभी जब आपका कार्य निष्क्रिय हो
FunctionsHttpError 5xxहाँ, आंशिक रूप से या पूर्णतःकेवल तभी जब आपका कार्य निष्क्रिय हो
FunctionsHttpError 4xxहाँनहीं: अनुरोध ठीक करें
retry.tstypescript
import { FunctionsRelayError } from '@aurabase/aurabase-js'

async function invokeWithRetry(name: string, body: unknown, attempts = 3) {
  for (let i = 0; i < attempts; i++) {
    const res = await aura.functions.invoke(name, { body })
    const safe = res.error instanceof FunctionsRelayError && res.error.status === 503
    if (!res.error || !safe) return res
    await new Promise((r) => setTimeout(r, 2 ** i * 500))
  }
  return aura.functions.invoke(name, { body })
}
इसके बजाय फ़ंक्शन को निष्क्रिय बनाएं

प्लेटफ़ॉर्म कॉल को डीडुप्लिकेट नहीं करता है और Idempotency-Key को अनदेखा करता है। भुगतान या ई-मेल के लिए, एक कुंजी संग्रहीत करें जिसे आप body में पास करते हैं और फ़ंक्शन की शुरुआत में इसकी जांच करें।

#
समय

4. समयबाह्य

तीन घड़ियाँ एक साथ चलती हैं:

घड़ीगलती करनाइसे कहां बदला जाए
आपका ग्राहकप्रत्येक responseType के लिए 30 सेकंडक्लाइंट विकल्पों में invoke(…, { timeout }), { signal }, या requestTimeoutMs
समारोह30 सेकंड, 1 और 300 के बीचफ़ंक्शन पर permissions.timeout_secs
प्रवेशद्वार380 sपरियोजनाओं द्वारा कॉन्फ़िगर करने योग्य नहीं

जब फ़ंक्शन timeout_secs से अधिक हो जाता है, तो रनटाइम इसे रद्द कर देता है और ऊपर दिखाए गए 500 या 503 के साथ, उस देरी के बाद आपकी कॉल विफल हो जाती है। कारण रॉ मोड में error.context.detail (WorkerRequestCancelled: request has been cancelled by supervisor) में दिखाई देता है। इस त्रुटि को देखने के लिए क्लाइंट timeout के बजाय अपने क्लाइंट timeout को फ़ंक्शन के timeout_secs से थोड़ा ऊपर सेट करें।

timeout.tstypescript
const { error } = await aura.functions.invoke('report', { timeout: 35_000 })
if (error?.code === 'timeout') {
  // आपके ग्राहक द्वारा रद्द कर दिया गया. फ़ंक्शन अभी भी चल रहा हो सकता है.
}

कुछ सेकंड से अधिक समय तक काम करने के लिए, कनेक्शन को खुला रखने के बजाय एक कार्य को कतारबद्ध करें।

#
डिबग

5. कारण खोजें

  • प्लेटफ़ॉर्म त्रुटियों में एक अनुरोध आईडी होती है: error.details.error.request_id। जब आप सहायता से संपर्क करें तो इसे उद्धृत करें।
  • aura functions logs <name> विधि, पथ, स्थिति, अवधि और अनुरोध आईडी के साथ हाल के HTTP अनुरोधों को सूचीबद्ध करता है। यह नहीं दिखाता है कि आपके फ़ंक्शन ने console.log या console.error के साथ क्या लिखा है: वह आउटपुट रनटाइम के अपने लॉग में रहता है, जिसे केवल प्लेटफ़ॉर्म ऑपरेटर ही पढ़ सकता है। इसके और अन्य मौजूदा अंतरालों के लिए सीमाएं देखें।
  • कॉल का पहचानकर्ता आपके फ़ंक्शन पर अग्रेषित नहीं किया गया है। headers में अपनी खुद की आईडी पास करें और लॉग इन करें।