Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Release v3.8.21 - AWS Bedrock ARN parsing fix - #545

Merged
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801
Jul 24, 2025
Merged

Release v3.8.21 - AWS Bedrock ARN parsing fix#545
karthikscale3 merged 13 commits into
mainfrom
release/3.8.21-1753390801

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

This PR fixes a critical bug in the AWS Bedrock instrumentation where modelId.split(".") fails when using ARN or cross-region model IDs that contain multiple dots. The issue caused a ValueError: too many values to unpack (expected 2) crash when using model IDs like:

  • arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • us.anthropic.claude-sonnet-4-20250514-v1:0

Changes Made

  • Fixed patch_converse_stream (line 110): Replaced (vendor, _) = modelId.split(".") with vendor, _ = parse_vendor_and_model_name_from_model_id(modelId)
  • Fixed patch_converse (line 145): Applied the same fix as above
  • Version bump: Incremented from 3.8.20 to 3.8.21 for this bug fix release
  • Consistency improvement: These functions now use the same robust parsing logic as patch_invoke_model and patch_invoke_model_with_response_stream

Root Cause

The patch_converse_stream and patch_converse functions assumed model IDs could always be split into exactly 2 parts using dots, but ARNs and cross-region model IDs contain multiple dots. The codebase already had a robust parse_vendor_and_model_name_from_model_id function that handles these cases correctly, but these two functions weren't using it.

Testing

⚠️Testing Limitation: Local testing was limited due to missing boto3/botocore dependencies in the development environment. The existing test suite in src/tests/aws_bedrock/test_model_id_parsing.py covers the parser function but couldn't be executed locally.

A test script was created that confirmed:

  • ✅ Original modelId.split(".") method fails with "too many values to unpack" error for ARN formats
  • ✅ The parse_vendor_and_model_name_from_model_id function handles these cases correctly

Review Checklist

  • Critical: Verify fix works with ARN format: arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
  • Critical: Verify fix works with cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Regression testing: Confirm simple model IDs still work: anthropic.claude-3-opus-20240229
  • Edge cases: Test the parser with foundation model ARNs and custom model ARNs
  • Version: Confirm 3.8.21 is appropriate for this bug fix
  • CI: Ensure all tests pass, especially AWS Bedrock related tests

Risk Assessment

🔴 High Priority Review: This touches critical path code for AWS Bedrock instrumentation. While the fix is minimal and follows existing patterns in the codebase, thorough testing is essential to prevent regressions.


Link to Devin run: https://app.devin.ai/sessions/9b326f6380504040bf8b711ce512ab94
Requested by: karthik@scale3labs.com

obinnascale3and others added 13 commits May 14, 2025 07:52
Co-authored-by: Obinna Okafor <obinna.okafor01@gmail.com>
* fix aws bedrock streaming bug
* bump version
* add deprecated dependency
* restrict current pinecone instrumentation to v6.0.2
* hard code boto3 dependency version
Added support for embeddings via AWS Bedrock
* Fix AWS Bedrock ARN parsing issue in converse methods
- Replace modelId.split('.') with parse_vendor_and_model_name_from_model_id
- Fixes crash when using ARN or cross-region model IDs with multiple dots
- Makes patch_converse and patch_converse_stream consistent with other methods
Resolves ValueError: too many values to unpack (expected 2) when using:
- ARN format: arn:aws:bedrock:us-east-1:<account_id>:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0
- Cross-region format: us.anthropic.claude-sonnet-4-20250514-v1:0
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
* Bump version to 3.8.21 for ARN parsing bug fix
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
---------
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: karthik@scale3labs.com <karthik@scale3labs.com>
Co-Authored-By: karthik@scale3labs.com <karthik@scale3labs.com>
@devin-ai-integration

Copy link
Copy Markdown
ContributorAuthor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@karthikscale3
karthikscale3 merged commit 462a04b into mainJul 24, 2025
0 of 4 checks passed
@karthikscale3
karthikscale3 deleted the release/3.8.21-1753390801 branch July 24, 2025 21:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@obinnascale3@m1kl0sh