রানটাইম সমস্যার ক্যাটালগ

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

Apigee Edge-এ সমস্যা

Apigee Edge-এর মাধ্যমে API অনুরোধ করা হলে, Apigee Edge কম্পোনেন্ট রাউটার ও মেসেজ প্রসেসর অথবা ব্যাকএন্ড সার্ভার ক্লায়েন্ট অ্যাপ্লিকেশনকে সমস্যা সংক্রান্ত মেসেজ দেখাতে পারে।

মেসেজ প্রসেসর থেকে হওয়া সমস্যা

মেসেজ প্রসেসর হল Apigee Edge-এর মূল কম্পোনেন্ট যা নীতি প্রসেস করে এবং ব্যাকএন্ড সার্ভারের সাথে ইন্টার‍্যাক্ট করে। এটি কোনও সমস্যা শনাক্ত করলে, যেমন:

  • নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা, TLS হ্যান্ডশেক ব্যর্থ হওয়া, ব্যাকএন্ড সার্ভার উপলভ্য না থাকা, ব্যাকএন্ড সার্ভারের সাথে যোগাযোগ করার সময় কোনও উত্তর না পাওয়া
  • নীতি প্রয়োগ করার সময় সমস্যা হওয়া
  • ভুল HTTP হেডার, এনকোডিং, পাথ, HTTP স্পেসিফিকেশন মেনে না চলা, প্রোডাক্টের সীমা অতিক্রম করা ইত্যাদি:
    • ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা পাঠানো HTTP অনুরোধের সাথে
    • অথবা

    • ব্যাকএন্ড সার্ভারের পাঠানো HTTP উত্তরের সাথে
  • এবং আরও অনেক কিছু

মেসেজ প্রসেসর থেকে পাওয়া সমস্যার নমুনা

মেসেজ প্রসেসর সবসময় HTTP স্ট্যাটাস কোড রিটার্ন করে, এর সাথে থাকে একটি JSON ফর্ম্যাটে ভুল কোড এবং একটি ভুল মেসেজ, যেমন নিচে দেখানো হয়েছে:

ক্লায়েন্ট অ্যাপ্লিকেশন নিম্নলিখিত উদাহরণের মতো একটি রেসপন্স কোড পায়:

HTTP/1.1 414 Request-URI Too Long

মেসেজ প্রসেসর থেকে পাওয়া সমস্যার উত্তর নিম্নলিখিত ফর্ম্যাটে দেখানো হয়:

{
   "fault":{
      "faultstring":"request line size exceeding 7,168",
      "detail":{
         "errorcode":"protocol.http.TooBigLine"
      }
   }
}

সমস্যার উত্তরে ফিল্ডের বিবরণ:

ফিল্ড বিবরণ
faultstring সমস্যার সম্ভাব্য কারণের বিবরণ সহ সমস্যার মেসেজ থাকে
errorcode সমস্যার কোড (ফল্ট কোড নামেও পরিচিত) যা সমস্যার সাথে যুক্ত

রানটাইম সমস্যার ক্যাটালগ

এই সমস্যার ক্যাটালগে রানটাইম সমস্যার কোড (নীতি সংক্রান্ত সমস্যা ছাড়া অন্য সমস্যার জন্য) সম্পর্কে আপনার যা কিছু জানা প্রয়োজন, সেইসব তথ্য দেওয়া আছে, যা Apigee Edge Message Processor কম্পোনেন্ট থেকে ফেরত আসে। এর মধ্যে প্রতিটি সমস্যার কোডের জন্য নিম্নলিখিত তথ্য অন্তর্ভুক্ত থাকে:

  • HTTP স্ট্যাটাস কোড
  • সমস্যা সংক্রান্ত মেসেজ
  • সমস্যার সম্ভাব্য কারণ
  • সম্পর্কিত যেকোনও HTTP স্পেসিফিকেশন এবং/অথবা প্রোডাক্টের সীমা
  • সমস্যার কারণ নির্ণয় করার নির্দেশাবলী ও সমস্যার সমাধান করার জন্য আপনি নিজে প্রয়োগ করতে পারেন এমন কার্যকর সমাধান (যেখানে উপলভ্য) সহ প্লেবুক ও ভিডিও
  • সমস্যার সমাধান করতে আপনি নিজে যে ব্যবস্থা নিতে পারেন

সমস্যার কোডের নিম্নলিখিত বিভাগগুলি কভার করা হয়েছে:

নির্দিষ্ট এরর কোডের জন্য উপরের তথ্য দেখাতে, টেবিল ফিল্টার করতে নিচের সার্চ বক্স ব্যবহার করুন। আপনি সারণীর যেকোনও ফিল্ডে স্ট্যাটাস কোড বা যেকোনও কন্টেন্ট সার্চ করতে পারবেন।

সমস্যার কোড বিবরণ এর সমাধান করুন

flow.*

flow.APITimedOut

  • HTTP স্ট্যাটাস কোড:
504 Gateway Timeout
  • সমস্যার মেসেজ:
API timed out
  • সম্ভাব্য কারণ:

এই সমস্যাটি তখনই হয় যদি:

  • নির্দিষ্ট API প্রক্সির জন্য প্রপার্টির দ্বারা কনফিগার করা টাইম-আউট পিরিয়ডের মধ্যে api.timeout ব্যাকএন্ড সার্ভার উত্তর দেয় না।
  • কম্পিউটেশনাল ইনটেনসিভ অপারেশন, বেশি লোড বা খারাপ পারফর্ম্যান্সের কারণে কোনও নীতি প্রয়োগ করতে অনেক সময় লাগে।

মনে রাখবেন: এই প্লেবুকে messaging.adaptors.http.flow.GatewayTimeout সমস্যার কোড সংক্রান্ত সমস্যার সমাধান করার নির্দেশাবলী দেওয়া আছে; তবে, আপনি flow.APITimedOut সমস্যার কোড সংক্রান্ত সমস্যার সমাধান করার জন্য একই প্লেবুক ব্যবহার করতে পারেন।

PLAYBOOK

flow.SharedFlowNotFound

  • HTTP স্ট্যাটাস কোড:
500 Internal Server Error
  • সমস্যার মেসেজ:
Shared Flow {shared_flow_name} Not Found
  • সম্ভাব্য কারণ:

শেয়ার করা নির্দিষ্ট ফ্লোটি:

  • বর্তমানে নেই
  • অথবা

  • আছে কিন্তু ডেপ্লয় করা হয়নি
PLAYBOOK

messaging.adaptors.http.flow

messaging.adaptors.http.flow.ApplicationNotFound

  • HTTP স্ট্যাটাস কোড:
404 Not Found
  • সমস্যার মেসেজ:
Unable to identify proxy for host: {virtual_host} and url: {pathsuffix}
  • সম্ভাব্য কারণ:

নিম্নলিখিত পরিস্থিতিগুলির মধ্যে কোনও একটিতে এই সমস্যাটি ঘটে:

  1. নির্দিষ্ট API Proxy হল:
    1. নির্দিষ্ট ভার্চুয়াল হোস্টের অনুরোধ গ্রহণ করার জন্য কনফিগার করা নেই
    2. অনুরোধে ব্যবহৃত নির্দিষ্ট পাথ থেকে অনুরোধ গ্রহণ করার জন্য কনফিগার করা নেই
    3. আপনি যে নির্দিষ্ট এনভায়রনমেন্টে API অনুরোধ করার চেষ্টা করছেন সেখানে ডেপ্লয় করা হয়নি
    4. এক বা একাধিক মেসেজ প্রসেসরে ডেপ্লয় করা হয়নি
  2. আপনি যে নির্দিষ্ট এনভায়রনমেন্টে API অনুরোধ করার চেষ্টা করছেন সেটি এক বা একাধিক মেসেজ প্রসেসরে লোড করা নেই
PLAYBOOK
এছাড়াও, একাধিক ভার্চুয়াল হোস্টের একই হোস্ট উপনাম ও পোর্ট নম্বর থাকলে এই সমস্যা হতে পারে। PLAYBOOK

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • HTTP স্ট্যাটাস কোড:
400 Bad Request
  • সমস্যার মেসেজ:
Decompression failure at request
  • সম্ভাব্য কারণ:

এই সমস্যা তখনই হয় যদি:

  • HTTP অনুরোধের হেডারে উল্লেখ করা এনকোডিং Content-Encoding সঠিক এবং Apigee Edge-এ কাজ করে,
  • কিন্তু

  • HTTP অনুরোধের অংশ হিসেবে ক্লায়েন্টের পাঠানো পেলোড ফর্ম্যাট Content-Encoding হেডারে উল্লেখ করা এনকোডিং ফর্ম্যাটের সাথে মিলছে না
PLAYBOOK

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Decompression failure at response
  • সম্ভাব্য কারণ:

এই সমস্যা তখনই হয় যদি:

  • ব্যাকএন্ড/টার্গেট সার্ভারের HTTP রেসপন্স হেডারে Content-Encoding নির্দিষ্ট করা এনকোডিং সঠিক এবং Apigee Edge-এ কাজ করে,
  • কিন্তু

  • HTTP রেসপন্সের অংশ হিসেবে ব্যাকএন্ড/টার্গেট সার্ভার দ্বারা পাঠানো পেলোড ফর্ম্যাটটি Content-Encoding হেডারে নির্দিষ্ট এনকোডিং ফর্ম্যাটের সাথে মেলে না
PLAYBOOK

messaging.adaptors.http.flow.ErrorResponseCode

  • HTTP স্ট্যাটাস কোড:
500

PLAYBOOK

ভিডিও

  • সমস্যার মেসেজ:
ব্যাকএন্ড সার্ভার ইমপ্লিমেন্টেশনের উপর নির্ভর করে সমস্যার মেসেজ ও ফর্ম্যাট আলাদা হতে পারে।
  • সম্ভাব্য কারণ:
Apigee Edge-এ ব্যাকএন্ড সার্ভার স্ট্যাটাস কোড 500 সহ উত্তর দিলে এই সমস্যা হয়।
  • HTTP স্ট্যাটাস কোড:
503

PLAYBOOK

ভিডিও

  • সমস্যার মেসেজ:
ব্যাকএন্ড সার্ভার ইমপ্লিমেন্টেশনের উপর নির্ভর করে সমস্যার মেসেজ ও ফর্ম্যাট আলাদা হতে পারে।
  • সম্ভাব্য কারণ:
Apigee Edge-এ ব্যাকএন্ড সার্ভার স্ট্যাটাস কোড 503 সহ উত্তর দিলে এই সমস্যা হয়।
  • HTTP স্ট্যাটাস কোড:
504 PLAYBOOK
  • সমস্যার মেসেজ:
ব্যাকএন্ড সার্ভার ইমপ্লিমেন্টেশনের উপর নির্ভর করে সমস্যার মেসেজ ও ফর্ম্যাট আলাদা হতে পারে।
  • সম্ভাব্য কারণ:
Apigee Edge-এ ব্যাকএন্ড সার্ভার স্ট্যাটাস কোড 504 সহ উত্তর দিলে এই সমস্যা হয়।

মনে রাখবেন: ক্লায়েন্ট অ্যাপ্লিকেশনে পাঠানো সমস্যার মেসেজের অংশ হিসেবে সমস্যার কোড messaging.adaptors.http.flow.ErrorResponseCode ফেরত দেওয়া হয় না । এটি কারণ, ব্যাকএন্ড সার্ভার সমস্যার উত্তর দিলে এবং 4XX বা 5XX স্ট্যাটাস কোড থাকলে, Apigee Edge এই সমস্যার কোড সেট করে। আপনি API মনিটরিং, NGINX অ্যাক্সেস লগ, অথবা অ্যানালিটিক্স ডেটাবেসে এই সমস্যার কোড দেখতে পাবেন।

messaging.adaptors.http.flow.GatewayTimeout

  • HTTP স্ট্যাটাস কোড:
504 Gateway Timeout
  • সমস্যার মেসেজ:
Gateway Timeout
  • সম্ভাব্য কারণ:
ব্যাকএন্ড সার্ভার যদি Apigee Edge মেসেজ প্রসেসরকে মেসেজ প্রসেসরে কনফিগার করা I/O টাইম-আউট পিরিয়ডের মধ্যে উত্তর না দেয়, তাহলে এই সমস্যা হয়।
PLAYBOOK

messaging.adaptors.http.flow.LengthRequired

  • HTTP স্ট্যাটাস কোড:
411 Length Required
  • সমস্যার মেসেজ:
'Content-Length' is missing
  • সম্ভাব্য কারণ:

Apigee Edge-এ পাঠানো HTTP POST ও PUT অনুরোধের অংশ হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশন Content-Length হেডার পাস না করলে এই সমস্যা হয়।

মনে রাখবেন: এই সমস্যা সহ ব্যর্থ হওয়া অনুরোধগুলি ট্রেস টুলে ক্যাপচার করা যায় না, কারণ মেসেজ প্রসেসর এই যাচাইকরণ খুব প্রাথমিক পর্যায়ে, অনুরোধ প্রসেস করা এবং API প্রক্সিতে কোনও নীতি প্রয়োগ করার অনেক আগেই করে।

  • HTTP স্পেসিফিকেশন:
RFC Section 3.3.2: Content-Length

এর সমাধান করুন

এই সমস্যার সমাধান করতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. নিশ্চিত করুন যে ক্লায়েন্ট অ্যাপ্লিকেশন সবসময় Apigee Edge-এ পাঠানো HTTP POST এবং PUT অনুরোধের অংশ হিসেবে হেডার Content-Length পাস করে। যেমন:

    curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
    
  2. এমনকি আপনি POST এবং PUT অনুরোধের সাথে খালি পেলোড পাস করলেও, নিশ্চিত করুন যে হেডার Content-Length: 0 পাস করা হয়েছে। যেমন:

    curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
    

messaging.adaptors.http.flow.NoActiveTargets

  • HTTP স্ট্যাটাস কোড:
503 Service Unavailable
  • সমস্যার মেসেজ:
The Service is temporarily unavailable
  • সম্ভাব্য কারণ:

নিম্নলিখিত কোনও একটি পরিস্থিতিতে এই সমস্যা হয়, আপনি যদি Apigee Edge-এ TargetServer ব্যবহার করেন:

  1. কাস্টম অনুমোদন সার্ভার দ্বারা ব্যাকএন্ড সার্ভার হোস্টের ভুল DNS রেজোলিউশন খারাপ IP অ্যাড্রেস তৈরি করে যার ফলে কানেকশন সংক্রান্ত সমস্যা হয়।
  2. এইসব কারণে কানেকশন টাইম-আউট সংক্রান্ত সমস্যা হয়:
    1. ব্যাকএন্ড সার্ভারে ফায়ারওয়াল সংক্রান্ত বিধিনিষেধের কারণে Apigee Edge ব্যাকএন্ড সার্ভারের সাথে কানেক্ট করতে পারে না।
    2. Apigee Edge ও ব্যাকএন্ড সার্ভারের মধ্যে নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা।
  3. TargetServer-এ উল্লেখ করা হোস্টটি ভুল অথবা সেটিতে অবাঞ্ছিত অক্ষর (যেমন স্পেস) আছে।

PLAYBOOK

ভিডিও

টার্গেট সার্ভারের হেলথ চেক মনিটর করার জন্য কনফিগার করা হেলথ চেক ব্যর্থ হলে এই সমস্যা হতে পারে।

PLAYBOOK

ভিডিও

messaging.adaptors.http.flow.RequestTimeOut

  • HTTP স্ট্যাটাস কোড:
408 Request Timeout
  • সমস্যার মেসেজ:
Request timed out
  • সম্ভাব্য কারণ:
Apigee Edge Message Processor, Message Processor কম্পোনেন্টে কনফিগার করা I/O টাইম-আউট পিরিয়ডের জন্য ক্লায়েন্ট অ্যাপ্লিকেশন থেকে অনুরোধ পেলোড না পেলে এই সমস্যা হয়।

এর সমাধান করুন

Apigee Edge-এর মেসেজ প্রসেসর কম্পোনেন্টে কনফিগার করা I/O টাইম-আউট পিরিয়ডের মধ্যে ক্লায়েন্ট অ্যাপ্লিকেশন যাতে অনুরোধ পেলোড পাঠায় তা নিশ্চিত করুন।

messaging.adaptors.http.flow.ServiceUnavailable

  • HTTP স্ট্যাটাস কোড:
503 Service Unavailable
  • সমস্যার মেসেজ:
The Service is temporarily unavailable
  • সম্ভাব্য কারণ:

নিম্নলিখিত পরিস্থিতিগুলির মধ্যে কোনও একটিতে এই সমস্যাটি ঘটে:

  1. কাস্টম অনুমোদন সার্ভার দ্বারা ব্যাকএন্ড সার্ভারের ভুল DNS রেজোলিউশন হোস্টের ফলে ভুল IP অ্যাড্রেস তৈরি হয়েছে যার ফলে কানেকশন সংক্রান্ত সমস্যা হয়েছে।
  2. এর কারণে কানেকশন টাইম-আউট সংক্রান্ত সমস্যা হয়:
    1. ব্যাকএন্ড সার্ভারে ফায়ারওয়াল সংক্রান্ত বিধিনিষেধের কারণে Apigee Edge ব্যাকএন্ড সার্ভারের সাথে কানেক্ট করতে পারে না।
    2. Apigee Edge ও ব্যাকএন্ড সার্ভারের মধ্যে নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা। ব্যাকএন্ড সার্ভার।
  3. টার্গেট এন্ডপয়েন্টে উল্লেখ করা টার্গেট সার্ভার হোস্ট ভুল অথবা অবাঞ্ছিত অক্ষর (যেমন স্পেস) আছে।

PLAYBOOK

DNS কাজ না করা:

ভিডিও

নেটওয়ার্ক কানেক্টিভিটি:

ভিডিও

এছাড়াও, মেসেজ প্রসেসর এখনও ব্যাকএন্ড সার্ভারে অনুরোধ পেলোড পাঠাচ্ছে, এমন সময় ব্যাকএন্ড সার্ভার যদি কানেকশন অসময়ে বন্ধ করে দেয়, তাহলে এই সমস্যা হতে পারে। PLAYBOOK

messaging.adaptors.http.flow.SslHandshakeFailed

  • HTTP স্ট্যাটাস কোড:
503 Service Unavailable
  • সমস্যার মেসেজ:
SSL Handshake failed {error_message}
  • সম্ভাব্য কারণ:

Apigee Edge-এর মেসেজ প্রসেসর ও ব্যাকএন্ড সার্ভারের মধ্যে SSL হ্যান্ডশেক প্রসেস চলাকালীন এই সমস্যা হয় যদি:

  1. Apigee Edge-এর মেসেজ প্রসেসরের ট্রাস্টস্টোর:
    • এমন সার্টিফিকেট চেইন আছে যা ব্যাকএন্ড সার্ভারের সম্পূর্ণ সার্টিফিকেট চেইনের সাথে মেলে না
    • অথবা

    • ব্যাকএন্ড সার্ভারের সম্পূর্ণ সার্টিফিকেট চেইন নেই
  2. ব্যাকএন্ড সার্ভারের দেখানো সার্টিফিকেট চেইন:
    • এতে একটি সম্পূর্ণভাবে উপযুক্ত ডোমেনের নাম (FQDN) আছে যা টার্গেট এন্ডপয়েন্টে উল্লেখ করা হোস্ট নামের সাথে মেলে না
    • অথবা

    • ভুল/অসম্পূর্ণ সার্টিফিকেট চেইন রয়েছে

PLAYBOOK

ভিডিও

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Unexpected EOF at target
  • সম্ভাব্য কারণ:

নিম্নলিখিত পরিস্থিতিগুলির মধ্যে কোনও একটিতে এই সমস্যাটি ঘটে:

  1. TargetServer, Apigee Edge-এ TLS/SSL কানেকশন কাজ করার জন্য সঠিকভাবে কনফিগার করা হয়নি।
  2. Apigee Edge যখন ব্যাকএন্ড সার্ভারের থেকে উত্তরের জন্য অপেক্ষা করছে, তখন ব্যাকএন্ড সার্ভার হঠাৎ করে কানেকশন বন্ধ করে দিতে পারে।
  3. Apigee এবং ব্যাকএন্ড সার্ভারে 'কিপ-অ্যালাইভ' টাইম-আউট ভুলভাবে কনফিগার করা হয়েছে।
PLAYBOOK

messaging.runtime.*

messaging.runtime.RouteFailed

  • HTTP স্ট্যাটাস কোড:
500 Internal Server Error
  • সমস্যার মেসেজ:
Unable to route the message to a TargetEndpoint
  • সম্ভাব্য কারণ:

Apigee Edge কোনও TargetEndpoints-এ অনুরোধ রাউট করতে না পারলে এই সমস্যা হয়, কারণ:

  • প্রক্সি সার্ভারে অনুরোধের সাথে ম্যাচ করে এমন কোনও রুট নিয়ম (<RouteRule>) শর্ত নেই
  • এবং

  • ProxyEndpoint-এ কোনও ডিফল্ট রুট নিয়ম সংজ্ঞায়িত করা নেই (যেমন, <RouteRule> কোনও শর্ত ছাড়াই)

এর সমাধান করুন

এই সমস্যার সমাধান করতে, এইসব নির্দেশাবলী অনুসরণ করুন:

  1. আপনার ProxyEndpoint-এ সংজ্ঞায়িত রুট নিয়ম পর্যালোচনা করুন এবং নিশ্চিত করতে পরিবর্তন করুন যে অন্তত একটি রুট নিয়ম শর্ত আছে যা আপনার অনুরোধের সাথে মেলে।
  2. একাধিক RouteRule থাকলে, কোনও শর্ত ছাড়াই একটি ডিফল্ট রুট নিয়ম সংজ্ঞায়িত করা ভালো।
  3. কন্ডিশনাল রুটের তালিকায় ডিফল্ট রুট নিয়ম যেন সবসময় শেষে থাকে তা নিশ্চিত করুন, কারণ ProxyEndpoint-এ উপর থেকে নিচ পর্যন্ত নিয়ম মূল্যায়ন করা হয়।

<RouteRule> ProxyEndpoint-এ কন্ডিশন নির্ধারণ করা সম্পর্কে আরও জানতে, কন্ডিশনাল টার্গেট দেখুন।

messaging.runtime.SenseRaiseFault

  • HTTP স্ট্যাটাস কোড:
403 Forbidden
  • সমস্যার মেসেজ:
Sense Fault
  • সম্ভাব্য কারণ:
Apigee Sense নিয়মের অংশ হিসেবে ব্লক করা কোনও নির্দিষ্ট ক্লায়েন্ট IP অ্যাড্রেস থেকে API অনুরোধ করা হলে এই সমস্যা হয়।

এর সমাধান করুন

এই সমস্যার সমাধান করতে, এইসব নির্দেশাবলী অনুসরণ করুন:

  1. আপনি যে নির্দিষ্ট ক্লায়েন্ট IP অ্যাড্রেস ব্লক করেছেন তা Apigee Sense-এ কনফিগার করা নিয়ম চেক করে যাচাই করুন। এটি ব্লক করা থাকলে, তাহলে বুঝতে হবে যে এটি ডিজাইন অনুযায়ী কাজ করছে।
  2. নির্দিষ্ট ক্লায়েন্ট IP অ্যাড্রেস ব্লক করা না থাকলেও, আপনি যদি এখনও এই সমস্যার মেসেজ পান, তাহলে Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

protocol.http.* - Caused due to bad request

protocol.http.BadFormData

  • HTTP স্ট্যাটাস কোড:
500 Internal Server Error
  • সমস্যার মেসেজ:
Bad Form Data
  • সম্ভাব্য কারণ:

নিম্নলিখিত সব শর্ত পূরণ হলেই শুধুমাত্র এই সমস্যাটি হয়:

  1. ক্লায়েন্ট Apigee Edge-এ যে HTTP অনুরোধ পাঠায় তাতে এগুলি থাকে:
    • Content-Type: application/x-www-form-urlencoded, এবং
    • শতাংশ চিহ্ন (%) সহ ফর্ম ডেটা অথবা শতাংশ চিহ্ন (%) সহ ভুল হেক্সাডেসিমেল অক্ষর যা ফর্ম - বিভাগ ১৭.১৩.৪.১ অনুযায়ী অনুমোদিত নয়।
  2. Apigee Edge-এ API প্রক্সি নির্দিষ্ট ফর্ম প্যারামিটার পড়ে যাতে এমন অক্ষর থাকে যা অনুরোধ ফ্লোতে ExtractVariables বা AssignMessage নীতি ব্যবহার করে অনুমোদিত নয়।
PLAYBOOK

protocol.http.DuplicateHeader

  • HTTP স্ট্যাটাস কোড:
400 Bad Request
  • সমস্যার মেসেজ:
Duplicate Header "{header_name}"
  • সম্ভাব্য কারণ:
Apigee Edge-এ ডুপ্লিকেট থাকার অনুমতি নেই এমন কোনও নির্দিষ্ট HTTP হেডার ক্লায়েন্ট অ্যাপ্লিকেশন থেকে Apigee Edge-এ পাঠানো HTTP অনুরোধের অংশ হিসেবে একই বা আলাদা আলাদা ভ্যালু সহ একাধিকবার দেখা গেলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:
RFC 7230, section 3.2.2: Field Order
PLAYBOOK

protocol.http.EmptyHeaderName

  • HTTP স্ট্যাটাস কোড:
400 Bad Request
  • সমস্যার মেসেজ:
Header name cannot be empty
  • সম্ভাব্য কারণ:
ক্লায়েন্ট অ্যাপ্লিকেশন Apigee Edge-এ HTTP অনুরোধের অংশ হিসেবে যে হেডার নাম পাঠায় সেটি খালি থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:
RFC 7230, section 3.2: Header Fields

এর সমাধান করুন

ক্লায়েন্ট অ্যাপ্লিকেশন Apigee Edge-এ যে HTTP অনুরোধ পাঠায়, তাতে যেন সবসময় RFC 7230, বিভাগ ৩.২: হেডার ফিল্ড অনুযায়ী সঠিক হেডার নাম থাকে তা নিশ্চিত করুন।

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP স্ট্যাটাস কোড:
400 Bad Request
  • সমস্যার মেসেজ:
Header {header_name} contains non ascii character {character}
  • সম্ভাব্য কারণ:
ক্লায়েন্ট অ্যাপ্লিকেশন Apigee Edge-এ HTTP অনুরোধের অংশ হিসেবে যে হেডার নাম পাঠায় সেটিতে নন-ASCII অক্ষর থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:

RFC 7230, section 3.2: Header Fields এবং RFC 7230, section 3.2.6: Field Value Components

এর সমাধান করুন

নিশ্চিত করুন যে ক্লায়েন্টের পাঠানো HTTP অনুরোধে Apigee Edge-এ, হেডার নামে নন-ASCII অক্ষর নেই, যা RFC 7230, বিভাগ 3.2.6: ফিল্ড ভ্যালু কম্পোনেন্ট অনুযায়ী হতে হবে।

protocol.http.HeaderWithInvalidChar

  • HTTP স্ট্যাটাস কোড:
400 Bad Request
  • সমস্যার মেসেজ:
Header {header_name} contains invalid character {character}
  • সম্ভাব্য কারণ:
ক্লায়েন্ট অ্যাপ্লিকেশন Apigee Edge-এ HTTP অনুরোধের অংশ হিসেবে যে হেডার নাম পাঠায় সেটিতে সমান চিহ্ন (=), কমা (,), সেমিকোলন (;), ট্যাব, CRLF ও নিউলাইন অক্ষরের মতো অননুমোদিত অক্ষর থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:

RFC 7230, section 3.2: Header Fields এবং RFC 7230, section 3.2.6: Field Value Components

এর সমাধান করুন

ক্লায়েন্ট অ্যাপ্লিকেশন Apigee Edge-এ যে HTTP অনুরোধ পাঠায় তাতে RFC 7230, section 3.2.6: Field Value Components অনুযায়ী হেডার নামে কোনও ভুল অক্ষর নেই তা নিশ্চিত করুন

protocol.http.InvalidPath

  • HTTP স্ট্যাটাস কোড:
400 Bad Request
  • সমস্যার মেসেজ:
Invalid path {path}
  • সম্ভাব্য কারণ:
ক্লায়েন্ট অ্যাপ্লিকেশন Apigee Edge-এ পাঠানো HTTP অনুরোধ URL-এর পাথ RFC 3986, section 3.3: Path-এ উল্লেখ করা স্পেসিফিকেশন অনুযায়ী অনুমোদিত নয় এমন অক্ষর থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:

RFC 3986, বিভাগ ৩: সিনট্যাক্স কম্পোনেন্ট এবং RFC 3986, বিভাগ ৩.৩: পাথ

এর সমাধান করুন

ক্লায়েন্ট অ্যাপ্লিকেশন থেকে Apigee Edge-এ পাঠানো HTTP অনুরোধের URL-এর পাথ যেন এমন কোনও অক্ষর না থাকে যা RFC 3986, বিভাগ ৩.৩: পাথ অনুযায়ী অনুমোদিত নয়।

protocol.http.MessageReadError

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Unexpected I/O after message headers have been read.
  • সম্ভাব্য কারণ:
MP যখন কোনও চ্যানেলে I/O পায় এবং সেটি প্রত্যাশিত নয়, তখন এই বিরল সমস্যাটি হয়। MP একটি অনুরোধ পড়ছে, সব হেডার পড়া হয়ে গেছে এবং অনুরোধের পে-লোড পড়ার জন্য সেট করা হয়েছে। তারপরে এটি একটি I/O ইভেন্ট পায় যেটি একই হেডার বলে মনে হয়।

এর সমাধান করুন

কী ঘটছে সেই সম্পর্কে আরও তথ্য পেতে লগ মেসেজ দেখুন।

logger.atSevere().log(
    "Unexpected I/O after message headers have been read. Channel diagnostics=%s."
        + " HeartBeat=%s",
    input.client().getDiagnostic(), message.getHeaders().isHeartBeat());
                

protocol.http.TooBigBody

  • HTTP স্ট্যাটাস কোড:
413 Request Entity Too Large
  • সমস্যার মেসেজ:
Body buffer overflow
  • সম্ভাব্য কারণ:
Apigee Edge-এ HTTP অনুরোধের অংশ হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা পাঠানো পে-লোডের সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি হলে এই সমস্যা হয়।
  • সীমা:
Apigee Edge-এর সীমা
PLAYBOOK

protocol.http.TooBigHeaders

  • HTTP স্ট্যাটাস কোড:
431 Request Header Fields Too Large
  • সমস্যার মেসেজ:
request headers size exceeding {limit}
  • সম্ভাব্য কারণ:
Apigee Edge-এ HTTP অনুরোধের অংশ হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশনের পাঠানো সব অনুরোধ হেডারগুলির মোট সাইজ, Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি।
  • HTTP স্পেসিফিকেশন:
RFC 6585, section 5: 431 Request Header Fields Too Large
  • সীমা:
Apigee Edge-এর সীমা
PLAYBOOK

protocol.http.TooBigLine

  • HTTP স্ট্যাটাস কোড:
414 Request-URI Too Long
  • সমস্যার মেসেজ:
request line size exceeding {limit}
  • সম্ভাব্য কারণ:
Apigee Edge-এ HTTP অনুরোধের অংশ হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা পাঠানো অনুরোধ লাইনের সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি হলে এই সমস্যা হয়।
  • সীমা:
Apigee Edge-এর সীমা
PLAYBOOK

protocol.http.UnsupportedEncoding

  • HTTP স্ট্যাটাস কোড:
415 Unsupported Media
  • সমস্যার মেসেজ:
Unsupported Encoding "{encoding}"
  • সম্ভাব্য কারণ:
ক্লায়েন্টের পাঠানো Content-Encoding হেডার HTTP উত্তরের অংশ হিসেবে এমন এনকোডিং/পে-লোড ফর্ম্যাট থাকলে এই সমস্যা হয় যা Apigee Edge-এ কাজ করে না।
  • HTTP স্পেসিফিকেশন:
RFC 7231, section 6.5.13: 415 Unsupported Media Type
PLAYBOOK

protocol.http.* - Caused by target

protocol.http.BadPath

  • HTTP স্ট্যাটাস কোড:
500 Internal Server Error
  • সমস্যার মেসেজ:
Invalid request path
  • সম্ভাব্য কারণ:
ব্যাকএন্ড সার্ভারের অনুরোধ করা URL, যা ফ্লো ভেরিয়েবল target.url দ্বারা উপস্থাপিত হয়, তাতে যদি এমন পাথ থাকে যা ফরওয়ার্ড স্ল্যাশ (/) দিয়ে শুরু না হয়ে প্রশ্নচিহ্ন (?) দিয়ে শুরু হয়, তাহলে এই সমস্যা হয়। এটি ভুল।
  • HTTP স্পেসিফিকেশন:

RFC 3986, বিভাগ ৩: সিনট্যাক্স কম্পোনেন্ট এবং RFC 3986, বিভাগ ৩.৩: পাথ

PLAYBOOK

protocol.http.DuplicateHeader

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Duplicate Header "{header_name}"
  • সম্ভাব্য কারণ:
Apigee Edge-এ ডুপ্লিকেট থাকতে না দেওয়া নির্দিষ্ট HTTP হেডার যদি Apigee Edge-এ ব্যাকএন্ড সার্ভারের পাঠানো HTTP রেসপন্সের অংশ হিসেবে একই বা আলাদা আলাদা ভ্যালু সহ একাধিকবার দেখা যায়, তাহলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:
RFC 7230, section 3.2.2: Field Order
PLAYBOOK

protocol.http.EmptyHeaderName

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Header name cannot be empty
  • সম্ভাব্য কারণ:
Apigee Edge-এ HTTP রেসপন্স হিসেবে ব্যাকএন্ড সার্ভার যে হেডার পাঠায় সেটি খালি থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:
RFC 7230, section 3.2: Header Fields

এর সমাধান করুন

ব্যাকএন্ড সার্ভার থেকে Apigee Edge-এ পাঠানো HTTP রেসপন্সে সবসময় RFC 7230, বিভাগ 3.2: হেডার ফিল্ড অনুযায়ী সঠিক হেডার নাম আছে কিনা তা নিশ্চিত করুন।

protocol.http.EmptyPath

  • HTTP স্ট্যাটাস কোড:
500 Internal Server Error
  • সমস্যার মেসেজ:
Request path cannot be empty
  • সম্ভাব্য কারণ:
ফ্লো ভেরিয়েবল target.url-এর মাধ্যমে প্রতিনিধিত্ব করা ব্যাকএন্ড সার্ভারের HTTP অনুরোধ URL-এ খালি পাথ থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:

RFC 3986, section 3: Syntax Components এবং RFC 3986, section 3.3: Path

PLAYBOOK

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Header {header_name} contains non ascii character {character}
  • সম্ভাব্য কারণ:
Apigee Edge-কে পাঠানো HTTP উত্তরের অংশ হিসেবে ব্যাকএন্ড সার্ভার যে হেডার নাম পাঠায় তাতে নন-ASCII অক্ষর থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:

RFC 7230, section 3.2: Header Fields এবং RFC 7230, section 3.2.6: Field Value Components

এর সমাধান করুন

নিশ্চিত করুন যে Apigee Edge-এ পাঠানো ব্যাকএন্ড সার্ভারের HTTP রেসপন্স RFC 7230, section 3.2.6: Field Value Components অনুযায়ী হেডার নামে নন-ASCII অক্ষর নেই।

protocol.http.HeaderWithInvalidChar

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Header {header_name} contains invalid character {character}
  • সম্ভাব্য কারণ:
HTTP রেসপন্স হিসেবে ব্যাকএন্ড সার্ভারের পাঠানো হেডার নামে সমান চিহ্ন (=), কমা (,), সেমিকোলন (;), ট্যাব, CRLF ও নিউলাইন অক্ষরের মতো অবৈধ অক্ষর থাকলে এই সমস্যা হয়।
  • HTTP স্পেসিফিকেশন:

RFC 7230, section 3.2: Header Fields এবং RFC 7230, section 3.2.6: Field Value Components

এর সমাধান করুন

Apigee Edge-এ পাঠানো ব্যাকএন্ড সার্ভারের HTTP রেসপন্সে যেন হেডার নামের মধ্যে কোনও ভুল অক্ষর না থাকে তা নিশ্চিত করুন। এটি RFC 7230, বিভাগ 3.2.6: ফিল্ড ভ্যালু কম্পোনেন্ট অনুযায়ী হতে হবে

protocol.http.ProxyTunnelCreationFailed

  • HTTP স্ট্যাটাস কোড:
503 Service Unavailable
  • সমস্যার মেসেজ:
Proxy refused to create tunnel with response status {status code}
  • সম্ভাব্য কারণ:

ফায়ারওয়াল, ACL (অ্যাক্সেস কন্ট্রোল লিস্ট), DNS সংক্রান্ত সমস্যা, ব্যাকএন্ড সার্ভারের উপলভ্যতা ইত্যাদি কারণে প্রক্সি সার্ভার দ্বারা Apigee Edge এবং ব্যাকএন্ড সার্ভারের মধ্যে টানেল তৈরি করার সময় এই সমস্যা হয়।

মনে রাখবেন: সমস্যার মেসেজে থাকা স্ট্যাটাস কোড (faultstring) থেকে সমস্যার প্রাথমিক কারণ জানা যায়।

PLAYBOOK

protocol.http.Response306Reserved

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Response Status code 306 is reserved, so can't be used.
  • সম্ভাব্য কারণ:

ব্যাকএন্ড সার্ভার Apigee Edge-কে 306 স্ট্যাটাস কোড সহ উত্তর দিলে এই সমস্যা হয়।

306 স্ট্যাটাস কোডটি HTTP স্পেসিফিকেশনের আগের ভার্সনে সংজ্ঞায়িত করা হয়েছে। বর্তমান HTTP স্পেসিফিকেশন অনুযায়ী, এই কোডটি রিজার্ভ করা আছে এবং ব্যবহার করা উচিত নয়।

  • HTTP স্পেসিফিকেশন:
RFC 7231, section 6.3.5: 306 Reserved

এর সমাধান করুন

স্ট্যাটাস কোড 306 রিজার্ভ করা আছে, তাই নিশ্চিত করুন যে Apigee Edge-এ উত্তর পাঠানোর সময় আপনার ব্যাকএন্ড সার্ভার এই স্ট্যাটাস কোড ব্যবহার করছে না।

protocol.http.Response405WithoutAllowHeader

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Received 405 Response without Allow Header
  • সম্ভাব্য কারণ:
ব্যাকএন্ড সার্ভার "Allow" হেডার ছাড়া 405 Method Not Allowed স্ট্যাটাস কোড সহ উত্তর দেয়।
  • HTTP স্পেসিফিকেশন:

RFC 7231, section 6.5.5: 405 Method Not Allowed and RFC 7231, section 7.4.1: Allow

PLAYBOOK

protocol.http.ResponseWithBody

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Received {status_code} Response with message body
  • সম্ভাব্য কারণ:

Apigee Edge-এ ব্যাকএন্ড সার্ভার থেকে পাওয়া HTTP রেসপন্স 204 No Content অথবা 205 Reset Content হলে এই সমস্যা হয়, তবে এতে রেসপন্স বডি এবং/অথবা নিম্নলিখিত হেডারগুলির মধ্যে একটি বা একাধিক থাকে:

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • HTTP স্পেসিফিকেশন:

RFC 7231, section 6.3.5: 204 No Content এবং RFC 7231, section 6.3.6: 205 Reset Content

PLAYBOOK

protocol.http.TooBigBody

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
Body buffer overflow
  • সম্ভাব্য কারণ:
Apigee Edge-এ HTTP অনুরোধের অংশ হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা পাঠানো পে-লোডের সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি হলে এই সমস্যা হয়।
  • সীমা:
Apigee Edge-এর সীমা
PLAYBOOK

protocol.http.TooBigHeaders

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
response headers size exceeding {limit}
  • সম্ভাব্য কারণ:
Apigee Edge-এ HTTP রেসপন্স হিসেবে ব্যাকএন্ড সার্ভারের পাঠানো সব রেসপন্স হেডারের মোট সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি হলে এই সমস্যা হয়।
  • সীমা:
Apigee Edge-এর সীমা
PLAYBOOK

protocol.http.TooBigLine

  • HTTP স্ট্যাটাস কোড:
502 Bad Gateway
  • সমস্যার মেসেজ:
response line size exceeding {limit}
  • সম্ভাব্য কারণ:
Apigee Edge-এ HTTP রেসপন্স হিসেবে ব্যাকএন্ড সার্ভার থেকে পাঠানো রেসপন্স লাইনের সাইজ Apigee Edge-এ অনুমোদিত সীমার থেকে বেশি হলে এই সমস্যা হয়।
  • সীমা:
Apigee Edge-এর সীমা
PLAYBOOK

protocol.http.UnsupportedEncoding

  • HTTP স্ট্যাটাস কোড:
415 Unsupported Media
  • সমস্যার মেসেজ:
Unsupported Encoding "{encoding}"
  • সম্ভাব্য কারণ:
HTTP রেসপন্স হিসেবে ব্যাকএন্ড সার্ভারের পাঠানো Content-Encoding হেডারে এনকোডিং/পে-লোড ফর্ম্যাট থাকলে এই সমস্যা হয় যা Apigee Edge-এ কাজ করে না।
  • HTTP স্পেসিফিকেশন:
RFC 7231, section 6.5.13: 415 Unsupported Media Type
PLAYBOOK

security.util.*

security.util.KeyAliasNotFound

  • HTTP স্ট্যাটাস কোড:
500 Internal Server Error
  • সমস্যার মেসেজ:
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • সম্ভাব্য কারণ:

TargetEndpoint বা TargetServer-এ উল্লেখ করা নির্দিষ্ট KeyAlias নির্দিষ্ট Keystore-এ খুঁজে না পেলে এই সমস্যা হয়।

এর সমাধান করুন

TargetEndpoint বা TargetServer-এ নির্দিষ্ট করা KeyAlias বিদ্যমান আছে এবং নির্দিষ্ট Keystore-এর অংশ কিনা তা নিশ্চিত করুন।

security.util.TrustStoreWithNoCertificates

  • HTTP স্ট্যাটাস কোড:
500 Internal Server Error
  • সমস্যার মেসেজ:
TrustStore {truststore_name} has no certificates
  • সম্ভাব্য কারণ:

TargetEndpoint বা TargetServer-এ উল্লেখ করা নির্দিষ্ট Truststore-এ কোনও সার্টিফিকেট না থাকলে এই সমস্যা হয়।

এর সমাধান করুন

আপনি যদি ব্যাকএন্ড সার্ভারের সার্টিফিকেট যাচাই করতে চান এবং TargetEndpoint বা TargetServer-এ Truststore ব্যবহার করতে চান, তাহলে Truststore-এ ব্যাকএন্ড সার্ভারের সঠিক সার্টিফিকেট আছে কিনা তা নিশ্চিত করুন।