प्रोफ़ाइल अब भी सूची में है, प्रमाणपत्र अब भी स्थापित दिखता है, और कनेक्ट बटन केवल «Keystore त्रुटि» कहने वाले संदेश के साथ विफल हो जाता है, और कुछ नहीं। ऐप का संग्रह मिटाने या फ़ोन सौंपने से पहले तय करें कि कौन-सा कुंजी संचालन विफल हुआ। तीन परिणाम वही संवाद बनाते हैं, और वे तीन अलग-अलग कार्रवाइयों पर प्रतिक्रिया देते हैं — उनमें से केवल एक विनाशकारी है। यह तुलना दस मिनट के लायक है, क्योंकि गलत शाखा आपको वह पहचान गँवा देती है जिसे आप बचाना चाहते थे।

एक संवाद के पीछे तीन विफलताएँ

पहला प्रमाणीकरण है। कुंजी मौजूद है और वैध है, लेकिन उसका उपयोग करने के लिए उपयोगकर्ता को उपस्थिति सिद्ध करनी होती है — डिवाइस अनलॉक, बायोमेट्रिक या कार्य-प्रोफ़ाइल चुनौती। यदि लॉक समयसीमा, नामांकित बायोमेट्रिक या प्रोफ़ाइल की स्थिति हाल ही में बदली है, तो कुंजी का उपयोग विफल हो सकता है जबकि कुंजी स्वयं पूरी तरह ठीक हो।

दूसरा स्थायी अमान्यकरण है। कुछ कुंजी सामग्री को प्लेटफ़ॉर्म नीति द्वारा अमान्य कर दिया जाता है जब लॉक विधि रीसेट होती है या बायोमेट्रिक नामांकन बदलता है, क्योंकि उसे बचाने वाला बंधन अब लागू नहीं रहता। कुंजी की मरम्मत नहीं की जा सकती और पुनः प्रयास कोई रिकवरी योजना नहीं है; पहचान को उस नामांकन प्रक्रिया से बदलना होगा जिसने उसे जारी किया था।

तीसरा प्रदाता विफलता है: keystore सेवा अभी संचालन पूरा नहीं कर सकी। यह वह श्रेणी है जिसे कभी-कभी दोहराना सार्थक है, और एकमात्र।

FailureWhat it meansWhat recovers itWhat does not
User not authenticatedKey needs a presence checkSupported unlock or authorization flowA VPN account password reset
Key permanently invalidatedBinding is gone; key unusableReplacement enrollment for that identityRetrying, rebooting, reinstalling the client
Transient provider errorService could not complete nowThe provider's documented retry pathClearing app data

ध्यान दें कि तीन में से दो विनाशकारी नहीं हैं और एक का डिवाइस स्तर पर कोई समाधान नहीं है। इनमें से कोई भी फ़ोन मिटाने से नहीं सुलझता, जो वह कदम है जो लोग पहले उठाते हैं क्योंकि संवाद उन्हें और कुछ नहीं देता।

पुनः नामांकन बनाम डेटा सफ़ाई

ये दोनों बाहर से समान दिखते हैं और नहीं हैं। पुनः नामांकन जारीकर्ता सिस्टम से नई पहचान माँगता है — इस डिवाइस से बंधा नया प्रमाणपत्र या कुंजी — और पुरानी को सेवानिवृत्त करता है। डेटा सफ़ाई ऐप की संग्रहीत स्थिति मिटा देती है, जो कुंजी को हटाए बिना कुंजी का संदर्भ हटा सकती है, या कुंजी हटा सकती है और आपको उसे फिर से बनाने का अधिकार छोड़े बिना छोड़ सकती है।

यह अंतर महत्वपूर्ण है क्योंकि निर्यात-अयोग्य कुंजियाँ डिज़ाइन से ही स्थानांतरणीय नहीं होतीं। वे डिवाइस के keystore में रहती हैं, जो भी हार्डवेयर या प्रदाता उपलब्ध हो उसके सहारे, और वे ऐसी वस्तु नहीं हैं जिसे बैकअप पकड़े और पुनर्स्थापन लौटाए। यदि तैनाती की पहचान निर्यात-अयोग्य कुंजी है, तो रिकवरी के रूप में पुनः नामांकन की योजना बनाएँ, और पहले से पुष्टि करें कि उस नामांकन को पाने का अनुमोदित मार्ग आपके पास है — कुछ संगठन इसके लिए निजी नेटवर्क पहुँच माँगते हैं, जो ठीक वही था जो खराब VPN प्रदान कर रहा था।

इसलिए क्रम यह है: समर्थित प्रमाणीकरण मार्ग आज़माएँ, फिर तय करें कि कुंजी स्थायी रूप से अमान्य है या नहीं, और पहचान केवल तभी बदलें जब हो। संग्रह मिटाना सबसे अंत में आता है, यह जानने के बाद कि क्या फिर से बनेगा, पहले नहीं क्योंकि यह आसान है।

केवल वही दोहराएँ जो दोहराया जा सकता है

पुराने प्लेटफ़ॉर्म संस्करण keystore त्रुटियों को एक ही अपवाद में समेट देते थे, इसीलिए इतने सारे क्लाइंट सब कुछ दोहराते हैं। API 33 से अपवाद प्रकार संरचना रखता है: संख्यात्मक त्रुटि, क्षणिक विफलता ध्वज और पुनः प्रयास नीति। क्लाइंट डेवलपर के लिए पुनः प्रयास नीति तभी अर्थपूर्ण है जब क्षणिकता ध्वज सत्य हो; स्थायी अमान्यकरण का कोई पुनः प्रयास कार्यक्रम नहीं है, और उसे लूप में पीटना केवल बैटरी खर्च करता है और लॉग भरता है।

यदि आप क्लाइंट लिखने के बजाय निदान कर रहे हैं, तो व्यावहारिक परिणाम वही है। हर प्रयास में समान विफलताएँ एकबारगी गड़बड़ी को बाहर करती हैं, लेकिन वे स्थायी रूप से अमान्य कुंजी को ऐसे प्रदाता से अलग नहीं करतीं जो कुछ समय से अनुपलब्ध है — प्रदाता का व्यवधान दसवें प्रयास पर भी पहले जैसा ही दिखता है। API 33 के संरचित फ़ील्ड के बिना, पुनरावृत्ति को दूसरा संकेत खोजने का कारण मानें — त्रुटि कोड यदि आपका बिल्ड उसे दिखाता है, ऑपरेटर की स्थिति, या उसी डिवाइस पर कोई दूसरी कुंजी सफल होना — न कि इस बात का प्रमाण कि कुंजी मृत है।

कारण-श्रृंखला पढ़ें, लेबल नहीं

एप्लिकेशन मूल अपवाद को लपेटते हैं, और इंटरफ़ेस की मैत्रीपूर्ण स्ट्रिंग अक्सर उस एकमात्र फ़ील्ड को छिपा देती है जो शाखा तय करता है। कारण-श्रृंखला और प्रयास का समय-चिह्न सुरक्षित रखें: बाहरी अपवाद आमतौर पर संचालन का नाम बताता है, और कारण कुंजी की स्थिति का।

इस अनुमान का प्रतिरोध करें कि दो विफल ऐप्स दोषपूर्ण हैंडसेट साबित करते हैं। अलग-अलग कुंजियाँ अलग-अलग प्रदाताओं और सुरक्षा स्तरों द्वारा समर्थित हो सकती हैं, और जो ऐप अभी भी काम करता है वह शायद वही संचालन बिल्कुल नहीं करता — हस्ताक्षर, डिक्रिप्शन और कुंजी सत्यापन एक ही सेवा के लिए अलग-अलग अनुरोध हैं। KeyStoreException संदर्भ नए API स्तरों पर संरचित फ़ील्ड का वर्णन करता है और यह जाँचने का स्थान है कि आपका बिल्ड वास्तव में क्या रिपोर्ट कर सकता है।

हार्डवेयर निष्कर्ष का समर्थन करने वाला प्रमाण अधिकांश लोगों की धारणा से सँकरा है: वही संचालन, उसी प्रदाता पर, स्वतंत्र कुंजियों में कुंजी-स्तरीय त्रुटि के बजाय प्रदाता-स्तरीय त्रुटि के साथ विफल होना। यह प्लेटफ़ॉर्म के निदान का प्रश्न है, डिवाइसों के बैच के बारे में सहायता फ़ोरम के थ्रेड का नहीं।

निर्णय लेते समय क्या दर्ज करें

Android बिल्ड, क्लाइंट संस्करण, चयनित प्रोफ़ाइल, विफल संचालन, और क्या हाल में कुछ बदला — OS अपडेट, लॉक-स्क्रीन परिवर्तन, नया फ़िंगरप्रिंट, पुनः नामांकन — दर्ज करें। क्रम को कारण के प्रमाण के रूप में नहीं, संदर्भ के रूप में दर्ज करें; कुंजी विफलता से पहले लॉक परिवर्तन एक संभावित सहसंबंध है, प्रदर्शन नहीं।

फिर जो शाखा आपने तय की उसके अनुसार कार्य करें। क्षणिक: पहचान रखें, समर्थित पुनः प्रयास मार्ग अपनाएँ। प्रमाणीकरण आवश्यक: समर्थित अनलॉक प्रवाह पूरा करें और संवाद से आगे बढ़ने के लिए उसे निष्क्रिय करने के बजाय तैनाती की अपेक्षित लॉक नीति रखें। स्थायी रूप से अमान्य: सामान्य नामांकन के माध्यम से पहचान बदलें और सेवानिवृत्त करें।

नए अधिकृत कनेक्शन पर परिणाम सिद्ध करके समाप्त करें, वास्तविक संसाधन तक, सर्वर सत्यापन अभी भी सक्षम रखते हुए। जो केवल ढीले प्रमाणपत्र जाँच के साथ काम करता है उसने कुंजी समस्या ठीक नहीं की — उसने उसे नेटवर्क परत में स्थानांतरित कर दिया है, जहाँ वह बाद में बदतर लक्षणों के साथ सामने आएगी।

  • तीन शाखाएँ: प्रमाणीकरण आवश्यक, स्थायी रूप से अमान्य, प्रदाता-क्षणिक।
  • केवल तीसरा पुनः प्रयास से लाभान्वित होता है, और केवल अपनी पुनः प्रयास नीति के अनुसार।
  • प्रतिस्थापन नामांकन पहुँच बहाल करता है; डेटा सफ़ाई विकल्प हटा देती है।
  • नए कनेक्शन और सामान्य सर्वर पहचान जाँच के साथ सत्यापित करें।

संबंधित लेख